home *** CD-ROM | disk | FTP | other *** search
/ Software of the Month Club 1997 April / Software of the Month Club 1997 April.iso / pc / dos / sri / edu / graphmat / graphmat.doc < prev    next >
Encoding:
Text File  |  1996-12-07  |  117.1 KB  |  2,354 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10. ========================================================================
  11.  
  12.   GGGG                       h                      t
  13.  G    G                      h                    ttttt
  14. G                            h                      t      i
  15. G  GGGG  rrrr   aaaa  pppp   hhhh   mmm mm    aaaa  t         cccc  aaaa
  16. G     G  r  r  a   a  p   p  h   h  m  m  m  a   a  t      i c     a   a
  17.  G    G  r     a   a  p   p  h   h  m  m  m  a   a  t   t  i c     a   a
  18.   GGGG   r      aaaa  pppp   h   h  m  m  m   aaaa   ttt   i  cccc  aaaa
  19.                       p
  20.                       p
  21.  
  22. ========================================================================
  23.  
  24.                                Graphmatica
  25.  
  26.                       Version 3.50b  Sat 07 Dec 1996
  27.  
  28.  
  29.                              by Keith Hertzer
  30.                       Copyright (C) 1996 kSoft, Inc.
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.                           System Requirements:
  39.                           --------------------
  40.  
  41. IBM personal computer or compatible equipped with CGA, EGA, VGA, or VESA
  42. SVGA graphics, at least 256 KB of RAM, running MS-DOS version 2.0 or
  43. higher. Epson dot-matrix and HP DeskJet/LaserJet and compatible printers
  44. are supported. Microsoft and compatible mice are supported but not
  45. required for most functions. If you have a mouse driver installed,
  46. Graphmatica will automatically detect and make use of your mouse. See
  47. Section I for details on "mouse strokes."
  48.  
  49. ----------------CGA users (if there still are any) NOTE:----------------
  50. If you have a CGA monitor and notice that the menus and dialog boxes
  51. are missing borders, you need to run the TSR program GRAFTABL.COM that
  52. comes with DOS 3.0 and later before starting Graphmatica. This will
  53. load the block graphics character generator which is sometimes not
  54. implemented in graphics modes in the CGA hardware.
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.                  Graphmatica version 3.50b  GRAPHMAT.DOC
  62.  
  63. ======================================================================
  64.                          C  O  N  T  E  N  T  S
  65. ======================================================================
  66.  
  67.  
  68. Section i: Introduction and Release Notes............................3
  69.  
  70. Section I: Using Graphmatica.........................................5
  71.  
  72. Section II: Using the Graph function.................................7
  73.  
  74. Section III: Extended graph functions: polar, parametric, dif eq....16
  75.  
  76. Section IV: Using AutoRedraw and the Redraw Queue...................20
  77.  
  78. Section V: View: Changing the appearance of the screen..............23
  79.  
  80. Section VI: Labels: Adding Explanatory Text to a Graph..............26
  81.  
  82. Section VII: Options: Viewing and setting special options...........28
  83.  
  84. Section VIII: Using a printer with Graphmatica......................30
  85.  
  86. Section IX: Point menu: evaluating a graph at specific points.......32
  87.  
  88. Section X: Calculus menu: Derivatives, Tangents and Integrals.......33
  89.  
  90. Appendix A: Graphmatica's Command Line Arguments....................35
  91.  
  92. Appendix B: Editing equation lists and GRAPHMAT.INI.................36
  93.  
  94. Appendix C: Upgrade Notes: Changes from 3.30........................38
  95.  
  96. Appendix D: Shareware / Order Form..................................40
  97.  
  98.  
  99.  
  100. ----------------------Note: GRAPHMATICA FOR WINDOWS---------------------
  101.  
  102. Graphmatica for Windows, version 1.5 is now available for Windows 3.1
  103. users. If Graphmatica for Windows isn't available from the source you
  104. got this file from, download it from CompuServe (in the math/science
  105. forum), FTP it from CICA, or send me $5 and I will send you a disk.
  106.  
  107. -----------------------------------------------------------------------
  108.  
  109.  
  110.  
  111. Section                                       ==========================
  112. ii                                            | Introduction and Notes |
  113.                                               ==========================
  114.  i
  115.  i
  116. iiio                                                                   3
  117. ------------------------------------------------------------------------
  118.  
  119.                               INTRODUCTION
  120.  
  121. Graphmatica is an interactive algebraic equation grapher that can be
  122. used as an aide to plotting mathematical curves. While it is designed to
  123. be extremely simple to use, its advanced features may not be readily
  124. apparent to the first-time user. Please take a moment to acquaint
  125. yourself with them:
  126.  
  127. 1. The Redraw Queue. Graphmatica remembers the last 25 equations you
  128.    typed in or loaded from a file. You can save your work for use in a
  129.    later session or with any text editor or Graphmatica 1.5 for Windows.
  130.  
  131. 2. Automatic functions. Graphmatica will automatically
  132.    + determine the type of graph you are entering based on the
  133.      variables used,
  134.    + recognize an equation's domain if you include one,
  135.    + alter the sampling rate dynamically while graphing to make sure
  136.      steep graphs like y=tan x are tracked correctly,
  137.    + adjust the x/y ratio when you reset the range so proper aspect
  138.      ratio is maintained,
  139.    + redraw the most recently-entered equation(s) when you change the
  140.      size or shape of the grid by any means, and
  141.    + restore the grid and special options settings when you load an
  142.      equation list that has them.
  143.    You don't have to do anything to use these functions, but the
  144.    Options menu still gives you complete control over them.
  145.  
  146. 3. Advanced equation parser follows mathematical rules--not the
  147.    computer's. You can use implied multiplication, a complete library of
  148.    math functions (including trig), and even leave out those annoying
  149.    parentheses in appropriate places. Forget about isolating variables
  150.    before graphing! As long as there is only one instance of the
  151.    dependent variable in the equation, Graphmatica will isolate it for
  152.    you, and even graph relations. You also get the power of 6 styles of
  153.    graphing: regular Cartesian, polar, parametric, and slope-field and
  154.    initial-value approximations for up to fourth-order ODEs (and fourth-
  155.    order linear systems as well), all detected automatically. Cartesian
  156.    inequalities are supported as well.
  157.  
  158. 4. Convenient controls: the status bar displays relevant information
  159.    about the selected equation, and help or error messages, and the
  160.    Redraw Queue combobox lets you select any equation in memory
  161.    to graph, delete, or edit to form a new equation.
  162.  
  163. 5. Pause and Print tables options let you see the coordinates of points
  164.    on your graphs... as they are drawn. Print tables shows values at
  165.    whole-number intervals so you can practice sketching curves yourself.
  166.  
  167.  
  168.  
  169. i. Introduction and Notes                                              4
  170. ------------------------------------------------------------------------
  171.  
  172. 6. Convenient mouse-oriented operations. You can use the mouse to select
  173.    a new range or view the coordinates of a point, select the initial
  174.    value for an ODE, and even find the tangent line of a curve or
  175.    integrate a function without pressing a single key.
  176.  
  177. 7. Flexible graph paper. Choose between regular graph paper and paper
  178.    appropriate for trig, polar, and logarithmic functions, at four
  179.    levels of detail.
  180.  
  181. 8. Lots of output options. Graphmatica lets you export your graphs to a
  182.    standard PC-Paintbrush (.PCX) file for inclusion into other documents,
  183.    or print directly to any Epson-compatible dot-matrix or HP DeskJet,
  184.    LaserJet, or compatible inkjet or laser printer.
  185.  
  186. 9. Every automatic option is also user-settable to give you absolute
  187.    control over your graphs. And the Save Setup Info command lets you
  188.    save your preferences so they are automatically restored whenever you
  189.    run Graphmatica.
  190.  
  191. 10. Instructive help topics explain the basics of each type of graph,
  192.    online help lets you brush up on most features without exiting the
  193.    program, and included demo files show you examples of each form of
  194.    equation. See the section below for a list of these files.
  195.  
  196.                           DEMO EQUATION FILES
  197.  
  198. Eight prewritten equation list files are included with Graphmatica to
  199. help demonstrate the kinds of graphs you can create and how to create
  200. them. Try loading each of them up, manipulating the view of the
  201. equations, redrawing, and modifying some equations. I suggest clearing
  202. the screen (if not the redraw queue as well) before loading a new file
  203. so the screen doesn't become too cluttered. Each file contains a
  204. different sort of graphs that you can draw with Graphmatica.
  205.  
  206. DIFEQ.GR    - sample differential equation approximations
  207. GRAPHMAT.GR - draws Graphmatica's name using parametric equations
  208. INEQUAL.GR  - sample inequalities
  209. LOGLOG.GR   - sample of logarithmic graph paper
  210. ODE2.GR     - sample of second-order differential equations
  211. POLAR.GR    - polar coordinates graphs
  212. TRIG.GR     - trigonometric graphs
  213. XYDEMO.GR   - Cartesian equations, quadratic equations, relations
  214. Read section IV (page 19) to learn how to use these demo files.
  215.  
  216.  
  217. -------------------------Note: ONLINE HELP FILES------------------------
  218.  
  219. Please do not edit the files GRMAT1.HLP - GRMAT7.HLP They are formatted
  220. especially for use by the Graphmatica help view function. Altering these
  221. files may prevent effective use of the help text. These files are a
  222. subset of the information contained in GRAPHMAT.DOC, so if you want
  223. printed documentation, you don't have to print the .HLP files.
  224.  
  225.  
  226.  
  227. Section                                            =====================
  228. III                                                | Using Graphmatica |
  229.  I                                                 =====================
  230.  I
  231.  I
  232. IIIo                                                                   5
  233. ------------------------------------------------------------------------
  234.  
  235.                               USER INTERFACE
  236.  
  237. I've expended a significant effort to make the interface to Graphmatica
  238. for DOS as close to that of Graphmatica for Windows as possible,
  239. including writing my own menu and listbox routines. In general, I think
  240. the interface is pretty intuitive and consistent between the two.
  241.  
  242.                        The EQUATION QUEUE COMBOBOX
  243.  
  244. The main feature that makes Graphmatica unique is the equation queue
  245. combobox. Before you enter any equations, all you will see is the
  246. equation editing line at the top of the screen directly below the menu.
  247. Once you enter an equation, however, a down arrow will appear to the
  248. right of the edit line. Clicking on this arrow with the mouse or
  249. pressing the down arrow key brings down the listbox of the combobox,
  250. which shows you several of your equations at a time. Use the arrow keys
  251. to scroll up and down through the listbox; Graphmatica displays the
  252. status of each equation in the color it is drawn in as you highlight it.
  253. You can also move the highlight line by clicking on the up and down
  254. arrows on the scroll bar (when it appears). Click on an equation or
  255. press enter to select an equation. The listbox will close and the
  256. selected equation will appear in the editing area. You can close the
  257. listbox without selecting an equation by pressing Escape, clicking on
  258. the edit line, or raising the menu as detailed in the section below.
  259.     The equation queue is "home base": after completing any operation,
  260. you will be returned without delay to the edit line with a copy of the
  261. current equation, ready to create a new equation and graph it.
  262.     Graphmatica operates on the object-action interaction model: i.e.,
  263. first select an object (equation) to act on, and then select an action
  264. to perform on it. You must select an equation from the combobox BEFORE
  265. you choose a menu item to apply to it; the program will not prompt you
  266. for which equation to redraw, evaluate a point from, or delete.
  267.  
  268.                 POP-UP PROMPTS and the Graphmatica EDITOR
  269.  
  270. Most data input in Graphmatica is done through pop-up "dialog boxes"
  271. which appear in the middle of the screen. (Of course, the equation input
  272. takes place in the combobox at the top of the screen.) If there are
  273. additional instructions, they will replace the menu bar on the top line.
  274. The input editor makes full use of the standard editing keys: Insert,
  275. Delete, Backspace, Left and Right arrow keys, Home, and End. Escape
  276. clears the entire field. The flashing cursor shows the current position
  277. and is either an underscore or a full block to indicate normal
  278. (overwrite) or insert modes. The editor can handle lines longer than the
  279. actual display space. When you move the cursor near the edge of the
  280. field, for equations and titles, it will automatically scroll to show
  281. you the rest of the line.
  282.  
  283. Usually if you choose a function by mistake and it presents you a pop-up
  284. prompt, pressing enter or ESC on the blank field will return you to the
  285. equation editor as if you had never selected the option. Note that this
  286. is not true for the Range function; if you press ESC at all 4 prompts
  287. the current range will be preserved, BUT the screen will clear.
  288.  
  289.  
  290.  
  291. I. Using Graphmatica                                                   6
  292. ------------------------------------------------------------------------
  293.  
  294.                                   MENUS
  295.  
  296. All features of Graphmatica are available through drop-down menus, which
  297. operate in a manner pretty close to Windows. (The one exception is that
  298. they are not technically "pull-down" like the Macintosh's; you must
  299. release the mouse button before the drop-down menu will appear.)
  300.  
  301. You have a choice of several ways to select menu items. If you have a
  302. mouse, just point and click. You can also use the keyboard in several
  303. ways. Note that to activate the menu for the first two ways you must
  304. first press the Alt key or F10. (Pressing the Alt key or Escape exits the
  305. menu, in case you decide you actually want to continue editing.)
  306.  
  307. 1. Cursor keys: As you navigate through the menus with the cursor keys,
  308. an explanation of the highlighted option appears on the bottom line of
  309. the screen. Highlight the option you want by using the left and right
  310. cursor keys. Select the highlighted option in the top bar by pressing
  311. enter. Most top-level items call up a secondary drop-down menu.
  312. Highlight the item you want using the up and down cursor keys. Select
  313. the highlighted item by pressing enter again. To cancel the menu and
  314. return to the top bar, press Escape. Or, use the left/right cursor keys
  315. to move to the next item on the top bar.
  316.  
  317. 2. Alphabetic/mnemonic keys: Each menu item also has associated with it
  318. an alphabetic accelerator key that is shown in a different color when
  319. the menu is activated.  Pressing this letter selects that menu item.
  320. Most (but not all) of these letters are the first in the word, so after
  321. a while they are easy to remember. Thus, to select the menu item _P_aper
  322. in the _V_iew menu, where underlines indicate highlighting, you would
  323. press Alt, V, P. Holding down Alt is OK, too.
  324.  
  325. 3. Function keys: This is not the most intuitive way around, but I left
  326. it in for old times' sake. If you prefer, you can use function keys;
  327. they select the options in the current menu in the order they appear on
  328. the screen. (i.e. in the main menu, F1 selects File, F2 Redraw, etc., and
  329. F7 selects Help. In the View menu, F1 would select Clear, F2 Paper, and
  330. so on.) Sorry, function key labels aren't available, but there are not
  331. many options to learn. If you use function keys, though, you do NOT need
  332. to press Alt or Enter to select items.
  333.  
  334.  
  335.                               CHOICE BOXES
  336.  
  337. For prompts where you must choose between several options, (i.e. yes or
  338. no questions) Graphmatica displays a dialog box with instructions and
  339. two or more pushbuttons. You can respond to these either by clicking on
  340. the desired button with the mouse, or by pressing the highlighted letter
  341. of your choice. In addition, you can use the left and right arrow keys
  342. to highlight your choice with the double border, then press Enter or the
  343. space bar to select it. To cancel the dialog box, click the right mouse
  344. button or press Escape. This does whatever is appropriate at that point
  345. to evade the question and return you to the equation editor. If you
  346. don't know how to answer a prompt, Escape will never hurt.
  347.  
  348.  
  349.  
  350. I. Using Graphmatica                                                   7
  351. ------------------------------------------------------------------------
  352.  
  353.                           HINTS FOR MOUSE USERS
  354.  
  355. Graphmatica has internal support for Microsoft (R) and compatible mice.
  356. If a mouse driver is installed when you run Graphmatica, it will
  357. automatically be detected and the usual mouse arrow will appear. To use
  358. the mouse on the menus, you simply "point and click." However, there is
  359. much more you can do with the mouse in Graphmatica:
  360.  
  361.  1. The left button, as usual, is always used to select an item or
  362.     emulate a keystroke. Whenever you see a prompt that says "Press
  363.     any key...", clicking the left button will have the same effect
  364.     as hitting a key.
  365.  2. The right button has the same effect as pressing the ESC key
  366.     whenever pressing ESC is a valid option. To get out of a
  367.     menu, you can click the right button.
  368.  3. Whenever you are using Graphmatica's input editor, the mouse can
  369.     be used to do two things: Pressing the right button, as usual,
  370.     causes the same effect as pressing the ESC key. You can also
  371.     position the cursor inside the edit field by clicking the left
  372.     button on the space you want to move to.
  373.  4. In the equation combobox and file selector, clicking on the up or
  374.     down arrows on the scroll bar to the right of the listbox is
  375.     equivalent to pressing those keys, and moves the highlight up or
  376.     down one line. However, the rest of the scrollbar is display only;
  377.     you cannot click on the track or drag the thumb to change the
  378.     contents of the listbox.
  379.  5. To use the mouse to scroll through a help file, click on the key
  380.     name (highlighted in red on the bottom line of the screen which
  381.     corresponds to the action you want to perform. In addition,
  382.     clicking the right mouse button corresponds to the escape key.
  383.  6. The mouse is not available during the actual graphing loop, to
  384.     prevent the pointer and the graph drawing routine from fighting
  385.     over the screen. To pause the graph, you must use the keyboard.
  386.     The mouse can be used to restart or cancel the graph at this
  387.     prompt though.
  388.  7. To select a graph into the equation editor, simply position the
  389.     pointer over any part of the curve and click the left button.
  390.  8. To zoom in to a region on the screen, drag the mouse over the grid
  391.     to highlight the area you want. The selection is constrained to keep
  392.     a constant aspect ratio, so vertical movement is basically ignored.
  393.     Just move the pointer up or down slightly and then mark out the area
  394.     by moving across the screen. Then choose Range from the View menu to
  395.     set a new range.
  396.  9. To use the coordinate cursor to get a quick look at the coordinates
  397.     of a point without using the menu, hold down the right mouse button
  398.     while the pointer is over the grid.
  399.  
  400.  
  401.  
  402. Section                              ===================================
  403. III III                              | Entering and graphing equations |
  404.  I   I                               ===================================
  405.  I   I
  406.  I   I
  407. III IIIo                                                               8
  408. ------------------------------------------------------------------------
  409.  
  410.                       GRAPHING CARTESIAN FUNCTIONS
  411.  
  412. So now that the cursor is blinking in the equation editor, what do you
  413. do? Just type in an equation and press enter. If you've used a
  414. programming language, spreadsheet, or math package on your computer
  415. before, you probably already know the basic format by heart. Just take a
  416. look at the sample files to make sure you know what everything means. If
  417. you're confused about how to specify division or exponents, see the
  418. operator table on the next page.
  419.  
  420. Here are the ground rules for normal Cartesian equations:
  421. + Always use exactly one "=" per equation
  422. + Always use exactly one "x" or "y"; you cannot use more than one of
  423.   both variables.
  424. + Always put some sort of expression on both sides of the "="
  425. + An expression consists of any mathematically meaningful combination of
  426.   decimal numbers, binary operations like + and *, parentheses,
  427.   functions, and variables or constants.
  428. + Spaces are completely optional, except where they serve to separate
  429.   alphabetic identifiers.
  430. + The order of operations is the standard algebraic left to right of:
  431.     Functions
  432.     Parentheses
  433.     Exponents
  434.     Multiplication and division
  435.     Addition and subtraction
  436.  
  437. Graphmatica supports implied multiplication of variables and constants
  438. as in "3x" or "5(2x+3)", but variables and other alphabetic
  439. identifiers such as functions and constants MUST be separated by a space
  440. or they will not be correctly identified. Thus  "xx", "xcos(x)", and
  441. "xpi" are not recognized, while "x*x" and "x pi" are OK. (Implied
  442. multiplication of the two variables x and y [e.g. "xy=1"] IS supported
  443. as a special case, however. I still recommend including the times sign
  444. in these cases for clarity.) Although I have greatly refined it in
  445. recent releases, the parser may still misinterpret some complex
  446. expressions for no apparent reason. Keep trying! I suggest liberal use
  447. of parentheses: if you are not sure whether something will be
  448. interpreted correctly, go back and put parentheses around it.
  449.  
  450.  
  451.                             CALLING FUNCTIONS
  452.  
  453. The argument to a function is determined by a simple rule which lets you
  454. avoid using parentheses in most cases: if the next non-blank character
  455. after the function name is not "(" then Graphmatica picks out the next
  456. complete term as the argument. A term is defined as the product of any
  457. number of factors, each possibly raised to a power. Thus the following
  458. expressions are all equivalent:
  459.  
  460.         sin 6x^2 + 2        sin 2*3*x^2 + 4        sin (6x^2) + 4
  461.  
  462.  
  463.  
  464. II. Entering and graphing equations                                    9
  465. ------------------------------------------------------------------------
  466.  
  467.                    OPERATORS, FUNCTIONS, AND VARIABLES
  468.  
  469. Graphmatica uses an operator set almost identical to BASIC's, with a few
  470. additions. The supported operators and functions are as follows:
  471.  
  472.    Operator            Meaning
  473.    =================   ==============================================
  474.    +, -, *, /          Add, subtract, multiply, divide
  475.    ^                   Exponentiation
  476.    [( )]               Parentheses: may be nested to any extent,
  477.                        brackets are provided for ease of reading but
  478.                        parser WON'T differentiate between "(" and "["
  479.    ; (semicolon)       Separate halves of a parametric equation
  480.    ' (single quote)    Make rest of the equation a comment
  481.    { m, n }            Specify domain, where 'm' is the start of the
  482.                        domain and 'n' is the end. Either end may be
  483.                        left open by omitting 'm' or 'n'.
  484.  
  485.    Function            Meaning
  486.    =================   ==============================================
  487.    abs                 absolute value
  488.    acos, asin, atan    arc cosine, arc sine, and arc tangent
  489.    asec, acsc, acot    arc secant, arc cosecant, and arc cotangent
  490.    cos, cosh           cosine and hyperbolic cosine
  491.    cot                 cotangent (1/tan)
  492.    csc                 cosecant (1/sin)
  493.    exp                 Euler's number to the specified power
  494.    int                 greatest integer ([x] is not supported)
  495.    ln, log             natural logarithm, logarithm base 10
  496.    sec                 secant (1/cos)
  497.    sin, sinh           sine, hyperbolic sine
  498.    sqrt (or sqr)       square root
  499.    tan, tanh           tangent, hyperbolic tangent
  500.  
  501.    Variables           Usage
  502.    =================   ==============================================
  503.    x, y                rectangular coordinates
  504.    r, t                r and theta in polar coordinates
  505.    x, y, t             x and y as functions of t in parametric form
  506.    x, t, dx            dif-eq mode, solves first order o.d.e.
  507.      [or y, x, dy]     dx is actually dx/dt in dx/dt = f(x,t)
  508.    d2x, d3x, d4x       second, third, fourth order differentials
  509.    t,x,y,z,w,dx...dw   solves up to 4th order linear system of ODEs
  510.    a                   user-settable free variable; can specify range
  511.                        and step rate to calculate several values
  512.  
  513.    Constant            Value
  514.    =================   ==============================================
  515.    b, c                user-settable free variables (constant)
  516.    d                   converts degrees to radians = pi/180
  517.    e                   Euler's number = 2.718...
  518.    pi (or p)           pi = 3.14159...
  519.  
  520. Note: by default, all trig functions work in radians, not degrees. You
  521. can convert using the constant d: e.g. sin(45d) = sin (pi/4)
  522. cos (x*d) = cosine of x, in degrees (you will need to change the range
  523. of x to 0 to 360 to get the full graph)
  524.  
  525.  
  526.  
  527. II. Entering and graphing equations                                   10
  528. ------------------------------------------------------------------------
  529.  
  530.                            GRAPHING RELATIONS
  531.  
  532. Graphmatica's equation parser will automatically isolate the variable
  533. "y" wherever it is in the equation. It will graph some relations, like
  534. circles ("x^2+y^2=36") and ellipses ("x^2/3 + y^2/4 = 20"), as well as
  535. hyperbolas and many other conic sections. (Consult a good Algebra
  536. textbook for help on their formulas.) It will also graph equations that
  537. are functions of y, not x (i.e. there are 0 or >1 occurrences of "y"
  538. but only one of "x" found). However, Graphmatica cannot perform the
  539. factoring needed to isolate a variable when it occurs more than once so
  540. implicit functions or relations like "x^2 - x = y^2 +4y" cannot be
  541. graphed. The relation graphing module (for graphs which may have more
  542. than one y value for a given x value) works like this: if in isolating
  543. the "y" in an equation Graphmatica finds an even power of it (i.e.
  544. "y^2"), it solves for both the positive and negative roots. This method
  545. by no means covers all possible relations, but it is adequate for the
  546. most common.
  547.  
  548.                           GRAPHING INEQUALITIES
  549.  
  550. You can graph rectangular-coordinate inequalities by replacing the '='
  551. with '<' or '>' for many simple functions and relations. This feature is
  552. presently only available for cartesian graphs. (Also, since the free
  553. variable 'a' implies that more than one curve will be drawn, equations
  554. containing 'a' are incompatible with inequalities, and the parser will
  555. not accept any inequality that uses 'a'.)
  556.  
  557. The region that solves the inequality is hatched in with the graph
  558. color. (The curve itself is not actually dotted to indicate a strict
  559. inequality, however, so '<' is effectively "less than or equal to".) In
  560. most cases, asymptotes are detected and a boundary added there as
  561. appropriate, so graphs like "y < tan x" and "xy > 1" are drawn
  562. correctly. In addition, the valid domain of the function being graphed
  563. is detected automatically, so "y > log x", for instance, shades only the
  564. first and fourth quadrants.
  565.  
  566. To accommodate intersecting regions, the graphing routine alternates
  567. between '\' and '/' hatching. Best results will be obtained when you
  568. graph no more than two inequalities on the same screen.  Not only does
  569. this make it easier to interpret the graph, but it can also prevent
  570. conflicts between graphs that cause the inequality to shade incorrectly.
  571. The graphing routine first defines a region by solid lines in the
  572. current graph color plus the edges of the screen. It then "seeds" this
  573. region, which may be discontinuous, in one or more places, and flood-
  574. fills it. Since the flood-fill operation does not know anything about
  575. the actual curves, but rather stops as soon as it finds the boundary
  576. color, the region MAY SHADE INCORRECTLY if another graph of the same
  577. color intersects it.
  578.  
  579. Unfortunately, in 2-color modes (CGA and MCGA) every feature of the grid
  580. is the same color as the graphs. Because the fill routine is not very
  581. robust, even graph paper interferes with the shading if a hatched
  582. pattern is used. Therefore, a 50% gray pattern is used instead to graph
  583. inequalities accurately in monochrome modes. Sorry if this wears down
  584. your printer ribbon, but there is nothing I can do about it without
  585. writing my own fill routine. Also note that this method does not
  586. accommodate intersecting regions gracefully.
  587.  
  588.  
  589.  
  590. II. Entering and graphing equations                                   11
  591. ------------------------------------------------------------------------
  592.  
  593.                           SPECIFYING THE DOMAIN
  594.  
  595. Graphmatica allows you to specify the domain of each equation
  596. independently. This allows you to draw only a particular part of a graph
  597. or change the domain without using the Range or T range functions to
  598. change the default domain. To specify a domain for an equation, type
  599. anywhere on the line the expression
  600.                                 { m, n }
  601. where 'm' is the start of the domain and 'n' is the end. If you want the
  602. domain to start at the default start, leave 'm' out. Then, whatever you
  603. change the start of the default domain to, that will always be where the
  604. equations starts graphing. To leave the end of the domain open, leave
  605. out 'n'. So if the range on-screen is (-10,10), specifying a domain of
  606. "{ ,5}" will graph from -10 to 5, and one of "{-4, }"  from -4 to 10.
  607.  
  608. To graph a parametric equation, you MUST specify a domain that is closed
  609. (i.e. one that has neither number left out).
  610.  
  611. The domain is parsed like any other expression, so you can use all of
  612. the arithmetic operators and functions available in the rest of the
  613. equations, as well as numbers and the constants d, e, and pi. The only
  614. restriction is that you may not use a variable (see table, page 7) in
  615. your domain, since this would yield ambiguous results.
  616.  
  617.  
  618.                           USING FREE VARIABLES
  619.  
  620. In any equation, in addition to the pre-programmed constants such as e
  621. and pi, you can also include the free variables 'b' and 'c' which you
  622. can define yourself. These parameters are effectively symbolic constants
  623. that make it easier to "play around" with the exact shape of the curve
  624. without editing the equation extensively.
  625.  
  626. The values of parameters used in each equation must be specified along
  627. with that equation, but if you don't type them in explicitly,
  628. Graphmatica will prompt you for the value(s) and insert this
  629. information in the equation for you. If you want, you can type in a
  630. value manually using a format similar to the domain specifier described
  631. above, for example:
  632.          {b: 1}                {c: -1/2}            {b: -pi/4}
  633. As usual, enclose the "domain" in curly braces. You must specify which
  634. parameter you want to set by its name ('b' or 'c') and a colon, followed
  635. by a value, which can be any expression that evaluates to a constant.
  636. You may not use other parameters either, since this could become self-
  637. referential.
  638.  
  639. You can change the value of a free variable after you have typed in
  640. equations and Graphmatica will automatically update and redraw all of
  641. the graphs using it with the new value. See section .... for details.
  642.  
  643.  
  644.  
  645. II. Entering and graphing equations                                   12
  646. ------------------------------------------------------------------------
  647.  
  648.                      GRAPHING FAMILIES OF FUNCTIONS
  649.  
  650. The third free variable, 'a', is fundamentally different because you can
  651. specify not just a single value, but a range of possible values that it
  652. can take. This allows you to graph families of functions or level curves
  653. of a 3-D surface easily. For instance, "y = a*cos(x)" will graph cosine
  654. curves of varying amplitudes, and "x^2+y^2 = a" will draw level curves
  655. of the surface "f(x,y) = x^2+y^2".
  656.  
  657. You don't even need to know the syntax described below to use this
  658. feature, since Graphmatica will prompt for the needed values and insert
  659. them in the equation for you. If you don't specify a range for 'a',
  660. Graphmatica will ask you for three values: the start of the range, the
  661. end of the range, and the amount to step by. Graphmatica starts by
  662. graphing the function with 'a' set to the start of its range, and then
  663. increments 'a' by the step value and draws another graph until 'a'
  664. exceeds the end of its range. (You can also specify a negative step
  665. value as long as the end of the range is less than the start.)
  666.  
  667. To type this information in on the command-line, add the domain
  668. specifier "{a: start, end, step}" to your equation, replacing "start",
  669. "end", and "step" with the desired values. For example, "y=a*cos(x)
  670. {a: 1,6,2}" will draw graphs of y=cos x, y=3cos x, and y=5 cos x.
  671.  
  672. Although the program does not put any limit on the number of curves in
  673. the "family" you can graph, be aware that this feature uses memory
  674. rapidly. In any case, the screen will likely become too cluttered to be
  675. useful if more than ten or so graphs are drawn, so try to make your step
  676. rate proportionate to the size of the range.
  677.  
  678.                             DRAWING THE GRAPH
  679.  
  680. Once you have entered an equation that parses successfully and pressed
  681. enter, Graphmatica will proceed to graph it. To interrupt a graph when
  682. the computer is in the process of drawing it, hit any key and the
  683. program will display on the bottom line the message:
  684.    "PAUSE at x=#, y=#. Press ESC to quit, any other key to restart.. "
  685. where # indicates the x and y coordinates you stopped it at. If you
  686. mistyped the equation and want to fix it, just press ESC.
  687.  
  688. Be patient! Graphmatica may need a while to produce a quality graph on a
  689. slower machine. To speed up the graphing, you may want to select a lower
  690. Fineness value.
  691.  
  692. When the graph for your equation is complete, the blinking cursor will
  693. reappear in the equation editor. If you'd like to start  over with a
  694. completely different equation, press ESC to clear the input field. If
  695. you'd rather modify the last equation, go right ahead; it's already
  696. stored safe and sound in the redraw queue (for more information see
  697. Section IV: Using AutoRedraw and the Redraw Queue). Or you can modify
  698. any previously entered equation by pressing the down arrow key (or
  699. clicking on the down arrow next to the editing field) to drop down the
  700. equation queue listbox and then selecting an equation from the redraw
  701. queue. You can then redraw this equation by pressing enter, or modify it
  702. to create a new equation. To access Graphmatica's other features, press
  703. Alt or hit escape on a blank line to raise the menu, or click on the
  704. desired menu item with the mouse.
  705.  
  706.  
  707.  
  708. II. Entering and graphing equations                                   13
  709. ------------------------------------------------------------------------
  710.  
  711.                              ERROR MESSAGES
  712.  
  713. A number of error messages may be encountered when graphing (apart from
  714. messages ingrained in the library functions which I cannot control).
  715. Many of them are fatal; the equation cannot be graphed and you must
  716. edit it. They will cause the computer to beep so you know there is a
  717. problem. The other five apply only to specific point(s) for which a y-
  718. value cannot be generated. They will not appear unless you ask for them
  719. using the Warnings option and then they appear silently.
  720.  
  721. [Please note that all warning messages which refer to the variables 'x'
  722. or 'y' will actually be 't' or 'r' when you are dealing with a polar
  723. equation.]
  724.  
  725. "Please type an equation (or select from the listbox); then press <-'
  726. to graph."
  727.     You pressed enter on the graph line without selecting or typing in
  728.     an equation.
  729.  
  730. "One or both sides of equation evaluated to nothing. Please edit your
  731. equation."
  732.     Make sure there is some sort of expression on each side of the
  733.     equation. Obviously, an entry like "y=" can't produce a meaningful
  734.     graph.
  735.  
  736. "No equals sign or more than one found. Press any key to edit the
  737. equation."
  738.     To be a valid and graphable, your equation must include exactly
  739.     one equals sign ['=']. If you get this error, you either left out
  740.     the '=' or accidentally typed two or more of them. For parametric
  741.     equations, there must be an '=' on each side of the dividing ';'.
  742.  
  743. "No dependent variable or more than one 'y' found. Please edit your
  744. equation."
  745.     Although Graphmatica can isolate ONE 'y' or 'x' variable and graph
  746.     some relations, it cannot perform the factoring needed to isolate the
  747.     a variable when both 'x' and 'y' occur more than once. It also
  748.     cannot plot polar graphs as a function of r instead of t or isolate
  749.     'r' when more than one instance is found. If you can adjust the
  750.     equation so it uses only one instance of the dependent variable, do
  751.     so; otherwise it can't be graphed. In parametric graphing, this
  752.     message may also indicate that no 'x' variable was found in the x(t)
  753.     equation.
  754.  
  755. "Inequalities only supported for rectangular equations. Replace < or >
  756. with =."
  757.     Inequalities cannot presently be evaluated for polar, parametric, or
  758.     differential equations. You may still be able to draw the graph if
  759.     you can express the inequality in rectangular form.
  760.  
  761. "Found unknown variable or function. Press any key to edit the
  762. equation."
  763.     Unfortunately, the evaluator isn't set up to return what caused
  764.     the error, so you'll have to look for it yourself. Check that your
  765.     equation contains only valid identifiers (x, y, pi, d, e, r, t, a,
  766.     b, and the functions listed above) and that you separated each of
  767.     them with an operator, space, or some other punctuation.
  768.  
  769.  
  770.  
  771. II. Entering and graphing equations                                   14
  772. ------------------------------------------------------------------------
  773.  
  774.                         ERROR MESSAGES, continued
  775.  
  776. "Found bad operation or mismatched parentheses. Press any key to
  777. edit..."
  778.     You either left out a paren somewhere, left out one or both
  779.     of the operands for a binary operation or the argument for a
  780.     function, or typed some other weird thing the parser and evaluator
  781.     couldn't digest. Examine your equation carefully and fix whatever
  782.     seems to be the problem.
  783.  
  784. "Missing argument to a binary operation or function. Please edit your
  785.  equation."
  786.     The parser couldn't find any identifiers or expressions to use as
  787.     one of the operands to a binary operation (like '+') or as the
  788.     argument to a function, like cos(x). All of Graphmatica's
  789.     functions require one argument following the function name.
  790.  
  791. "Can't find the inverse of this function of y. Press a key to edit
  792. equation."
  793.     You tried to graph an equation like "int(y)=x" for which y cannot be
  794.     isolated by taking the inverse of the function. The functions which
  795.     cannot be isolated are "cosh", "sinh", "tanh", and "int". If you
  796.     can't adjust the equation so this error does not occur, it is not
  797.     graphable.
  798.  
  799. "Parametric equation requires that you specify domain! See 'Graph' help
  800. file."
  801.     You typed in a parametric equation (or accidentally hit the
  802.     semicolon) and neglected to include a closed domain [like {1,6}].
  803.     Because the diversity of parametric equations makes it hard to pick
  804.     a default domain, you have to include one with each parametric
  805.     graph. See above in this section for help on giving the domain and
  806.     below in Section III for help on parametrics.
  807.  
  808. "Domain did not evaluate to a constant value. Press a key to edit
  809. equation."
  810.     The domain you entered either could not be parsed, or was found to
  811.     contain a non-constant identifier, like x or y. Valid domains must
  812.     have at least one side of the range defined and can't contain
  813.     variables, although any other expression that evaluates to a
  814.     constant is OK.
  815.  
  816. "Not enough initial values to draw graph. Make sure there are # and try
  817. again."
  818.     Although first-order ODEs may be graphed as a slope-field without
  819.     providing an initial value, second and higher order equations
  820.     require that you provide initial values for t, x, dx..., up to the
  821.     derivative one order less than the highest one in the equation. Make
  822.     sure that you have specified the right number of valid IVs.
  823.  
  824. "Cannot accurately draw the graph of a discontinuous function (like
  825. y=w^x, w<0)"
  826.     The correct graph of this class of functions has singularities all
  827.     over the place and thus cannot be drawn accurately using the
  828.     algorithms Graphmatica normally uses on smooth curves.
  829.  
  830.  
  831.  
  832. II. Entering and graphing equations                                   15
  833. ------------------------------------------------------------------------
  834.  
  835.  
  836.                          WARNING ERROR MESSAGES
  837.  
  838. "Overflow at x=#.##."
  839.     Some function or operation generated a number too large to fit
  840.     into a 8-byte floating point variable. The point at x=#.## was not
  841.     graphed. This error is not fatal, so the graphing process is
  842.     continued, but if the message is repeated and no image is graphed,
  843.     you may need to abort graphing and look at your equation again.
  844.  
  845. "Division by zero at x=#.##."
  846.     At x=#.## your equation included division by zero so that point
  847.     was skipped. Unless you get this error repeatedly, there's no real
  848.     problem.
  849.  
  850. "Can't raise a negative number to a fractional power. [x=#.##]"
  851.     Due to the possibility of getting an even root of a negative
  852.     number (like -16^(1/2) which actually equals the square root of
  853.     -16), the C Library pow() function refuses to process any
  854.     arguments like these. This is not a fatal error, and the portion
  855.     of your graph (if any) where the base is not negative or the power
  856.     is not fractional should be graphed perfectly. This error also
  857.     occurs when you try to take the square root of a negative number
  858.     with the "sqr" function.
  859.  
  860. "Can't find the logarithm of a negative number. [x=#.##]"
  861.     The natural logarithm (ln) and base 10 logarithm (log) functions
  862.     are defined only on x greater than zero.
  863.  
  864. "Inverse of abs() not defined on negative numbers. [x=#.##]"
  865.     This reminder warning occurs when you graph a curve like abs(y)=x
  866.     without restricting the domain of the expression equal to abs(y) to
  867.     be positive.
  868.  
  869. "Domain error: asin/acos functions defined only on -1<=x<=1. [x=#.##]"
  870.     The arcsine (asin) and arc cosine (acos) functions are only
  871.     defined between -1 and 1 (the range of the sin and cos functions).
  872.  
  873.  
  874.  
  875. Section                                     ============================
  876. III III III                                 | Extended Graph Functions |
  877.  I   I   I                                  ============================
  878.  I   I   I
  879.  I   I   I
  880. III III IIIo                                                          16
  881. ------------------------------------------------------------------------
  882.  
  883.                       INTRODUCTION TO POLAR GRAPHS
  884.  
  885. Polar coordinates are a fundamentally different approach to representing
  886. curves in two-dimensional space. The concept is pretty easy to grasp
  887. graphically, but if you have never used polar coordinates and want to
  888. understand them, you should probably read the section below.
  889.  
  890. The traditional Cartesian method relies on an x and a y coordinate to
  891. mark how far a point is from the axes in two perpendicular directions;
  892. polar coordinates plot the location of a point by one coordinate
  893. represented by the greek letter theta (looks like an O with a line
  894. through the middle--one of these methods should print it: Î˜ or O-) which
  895. is simplified to "t" in Graphmatica and another called "r". The "t"
  896. tells what direction to go in from the origin, and the "r" tells how far
  897. to go out in that direction to reach the point. The direction is
  898. measured in radians as an angle starting from the positive side of the
  899. x-axis and turning around counter-clockwise (like measuring the angle
  900. the hand on a clock has traveled starting at the 3 o'clock position and
  901. going backwards). There are 2pi radians in a complete circle,
  902. corresponding to 360 of the degrees you're familiar with. To put a polar
  903. coordinate into Cartesian terms in order to graph it, we use the
  904. equations: x = r cos (theta)  and  y = r sin (theta).
  905.  
  906. To make a graph using polar coordinates, we let theta be the independent
  907. variable and calculate a distance to plot out from the origin as we let
  908. the angle sweep around in the positive direction. The domain for the
  909. graphing is 0 to 2pi (the first complete circle in the positive
  910. direction), but you can easily change these values using the "T range"
  911. function in the View menu [see Section V]. Polar graphs can be entered
  912. in the equation editor just like normal graphs. The only difference in
  913. what you type, and the way Graphmatica detects a polar graph, is that
  914. you must use the variables "t" and "r" instead of "x" and "y". The
  915. restrictions are still the same: you can have one and only one instance
  916. of the dependent variable "r," although it can be located almost
  917. anywhere in the equation. You can embed the "r" in a term like "r^2" to
  918. graph functions that cannot be simplified by normal means and
  919. Graphmatica will evaluate both positive and negative roots automat-
  920. ically. You should watch as your graph is drawn, because often the
  921. direction it is going is almost as important as the figure it draws.
  922. (When you have a "double" equation with "r^2" in it, though, note that
  923. the positive roots are drawn first and then the negative roots are
  924. drawn: theoretically they should be drawn simultaneously, but this is
  925. not practical.)
  926.  
  927. Please note that the x and y coordinate ranges and the range for the
  928. variable theta function completely independently; in normal Cartesian
  929. graphing, theta's value is irrelevant, and in polar graphing, theta
  930. controls the domain of the graph, but the x and y ranges still control
  931. the physical screen you see. If you want to change your view of a polar
  932. graph, you use the scale or range functions just as you would normally.
  933.  
  934.  
  935.  
  936. III. Extended graph functions                                         17
  937. ------------------------------------------------------------------------
  938.  
  939.                     INTRODUCTION TO PARAMETRIC GRAPHS
  940.  
  941. Parametric graphing, like polar graphing, uses a different method of
  942. calculating points on the plane to come up with curves that may be
  943. difficult to compute using normal rectangular coordinates. They are
  944. unique in that the cartesian x and y coordinates are calculated based on
  945. a third variable (the "parameter" of x and y) which is traditionally
  946. called 't' (not to be confused with the 't' used by Graphmatica to
  947. represent theta). T is allowed to increase from the start of the domain
  948. you specify to the end. At each value, the functions x(t) and y(t) are
  949. calculated to give an (x,y) coordinate which is graphed. Graphmatica
  950. then connects these points to form a smooth curve--if something you
  951. graph begins to look jagged, you probably need to adjust the fineness.
  952. (Parametric graph fineness is linked to the same fineness control as
  953. Cartesian and polar graphing, and should be decent at the default
  954. fineness value, but if you need to, you can increase or decrease this
  955. value. Be aware that this will affect the fineness of non-parametric
  956. graphs as well. See Section VII "Adjusting the Fineness" for details.)
  957.  
  958. To enter a parametric graph, you need to remember four basic parts: the
  959. x(t) and y(t) functions, the semicolon between them (this is how
  960. Graphmatica knows it's a parametric graph), and the domain for t.
  961.                       semicolon
  962.                 x-function |   y-function    domain
  963.                     |      |        |           |
  964.                   x =  2t  ;   y =  2t^2   {-10, 10}
  965.  
  966. Although as in all other Graphmatica equations you don't need to solve
  967. for x and y (i.e. t=5x would be OK), only one x and one y can appear in
  968. the whole equation, and "double" equations like "x^2=t" where
  969. Graphmatica would normally solve for both the positive and negative
  970. roots are NOT supported (you can enter them but only the positive root
  971. will be found; each equation in the redraw queue is allowed enough space
  972. to hold two computable expressions, and either a double equation or an
  973. x/y pair of parametric equations will fit, but not both). You can type
  974. the x and y equations in in either order, as long as they are separated
  975. by a semicolon, and the domain will be recognized anywhere on the line.
  976. You MUST specify a domain for each parametric equation! The variety of
  977. curves that can be drawn with parametric equations is great and makes
  978. choosing an appropriate default domain impossible. Some curves (like
  979. those including the circular functions sine and cosine) tend to work
  980. best over a {0,2pi} domain, like polar graphs. Others will match up
  981. better with the default domain of the normal graphs, the size of the
  982. viewing area. Some have a very compact domain, between say 0 and 1,
  983. where they will appear on the screen. If you over- or under-estimate the
  984. domain, you can always abort the graph and edit your equation.
  985.  
  986.  
  987.  
  988. III. Extended graph functions                                         18
  989. ------------------------------------------------------------------------
  990.  
  991.                COMPARISON OF THE THREE GRAPHING TECHNIQUES
  992.  
  993.     While some curves can be drawn by cartesian relations, polar
  994. coordinates, and parametric functions, each technique is better suited
  995. for some graphs than for others. For instance, a circle with radius 5
  996. around the origin which can be produced by the equation
  997.                              x^2 + y^2 = 25
  998. can be drawn faster by the parametric equations
  999.                  x = 5 cos (t) ; y = 5 sin (t)  {0, 2p}
  1000. and can be drawn faster and much more simply by the polar graph
  1001.                                  r = 5.
  1002.  
  1003.  
  1004.             GRAPHING APPROXIMATIONS OF DIFFERENTIAL EQUATIONS
  1005.  
  1006. Graphmatica also provides the ability to approximate the solutions of up
  1007. to fourth-order ordinary differential equations. [I will not provide
  1008. background material on this function because if you need to use it, you
  1009. probably know more about differential equations than I do.] To let the
  1010. parser know you want to graph a differential equation, you must include
  1011. the differential "dx" (which actually represents dx/dt) as one of your
  1012. variables. If you specify an equation as dx = f(x,t) where f(x,t) is
  1013. some combination of the variables x and t (such as "x^3 + t" or "t * x")
  1014. and do NOT include the domain operator "{ , }", the program will draw a
  1015. slope field for dx/dt = f(x,t), with t as the horizontal axis and x the
  1016. vertical. Note that you can also use the notation dy = f(y,x) if you
  1017. prefer; both sets of variables are automatically recognized as
  1018. differential equations.
  1019.  
  1020. If you do include a "domain" {m, n}, however, it will not be interpreted
  1021. as a domain but will instead indicate that you want to graph a specific
  1022. solution to the initial-value problem x(m)=n by Runge-Kutta approximation.
  1023.  
  1024. Graphmatica will also solve second, third, and fourth order initial-
  1025. value problems using a Runge-Kutta method for linear systems. To specify
  1026. a second or higher order derivative, use the variables d2x, d3x, or d4x.
  1027. Remember that for an nth order equation, you must also specify n+1
  1028. initial values. You can type these into the equation using the "domain"
  1029. notation described above; the order of values is t, x, dx, d2x, d3x.
  1030. Thus d2x + x=0 {0,0,1} graphs a sine curve as the solution to
  1031. "d^2x/dt^2 + x = 0" for x = 0 and dx/dt = 1 at t=0.
  1032.  
  1033. In addition, you can specify an initial value by moving the crosshairs
  1034. around with the arrow keys or mouse. Type in an equation to add an IV to
  1035. or select an equation to modify and choose the Set IV option from the
  1036. Point menu. Move the cursor to the desired location and press enter or
  1037. click the left mouse button to add the initial value point to the
  1038. selected equation. For second-order or higher ODEs, you can also specify
  1039. the first derivative using the mouse or arrow keys. After you select the
  1040. IV point, Graphmatica displays a "rubber band" line from this point to
  1041. the current position until you click/press enter on a second point. The
  1042. coordinates of the first point are then taken to be the t and x values
  1043. for the IV, and dx/dt is initially set to the slope of the line between
  1044. the two points. If required, further initial values will be requested
  1045. via dialog boxes.
  1046.  
  1047.  
  1048.  
  1049. III. Extended graph functions                                         19
  1050. ------------------------------------------------------------------------
  1051.  
  1052.                     SYSTEMS OF DIFFERENTIAL EQUATIONS
  1053.  
  1054. Graphmatica can also approximate the solutions of up to fourth-order
  1055. systems of ordinary differential equations. [Refer to your local
  1056. textbook for more background information.] You can pose your system in
  1057. either of two sets of variables: { t, x, dx, y, dy, z, dz, w, dw} or
  1058. { t, x1, dx1, x2, dx2, x3, dx3, x4, dx4 }. In each case, t is the
  1059. independent variable, and the variables dX are the derivatives dX/dt.
  1060. You specify the complete system in a manner similar to parametric
  1061. equations, namely (for a fourth-order system):
  1062.  
  1063. dx=f1(x,y,z,w,t); dy=f2(..); dz=f3(..); dw=f4(..) {t0,x0,y0,z0,w0}
  1064.  
  1065. where f1...f4 are some functions of the variables x,y,z,w, and t, and
  1066. x0...w0 are the initial values of the system at t0. (You need not
  1067. isolate the differentials on the left of the equals sign, but you can only
  1068. use one per equation.) Separate equations with semi-colons, and enclose
  1069. the initial values in curly braces.
  1070.  
  1071. If you want to graph a third- or second-order system, just leave out the
  1072. equations for dw, or for dz and dw, and use the appropriate number of
  1073. initial values instead.
  1074.  
  1075. Note that to simplify the process of parsing the system and associating
  1076. each equation in the system with a graph, the order of equations dx,
  1077. dy,dz,dw (or dx1, dx2, dx3, dx4) is required, and the program will not
  1078. graph a system whose equations are listed in the wrong order.
  1079.  
  1080. The values for each curve in the system are calculated simultaneously,
  1081. but only the curve for x(t) is drawn as it is calculated; the others are
  1082. displayed as soon as calculation is finished. Each curve plots in a
  1083. different color, which corresponds to the color of its equation in the
  1084. system when it is listed in the status bar.
  1085.  
  1086. You may choose to plot an alternate coordinate space using the "vars"
  1087. domain: for instance, adding "{vars: x,y}" to an ODE system will plot
  1088. the solution for x against y over the default interval of t.
  1089.  
  1090. The algorithm used to compute all of the ODE approximations described
  1091. above is the 4th order Runge-Kutta routine with adaptive step size
  1092. documented in chapter 15 of "Numerical Recipes in C".
  1093.  
  1094. You can also choose the initial value points using the mouse. The
  1095. procedure is the same as the one for a single ODE, except for systems of
  1096. ODEs, this function allows you to click on 2, 3, or 4 initial value
  1097. points, one for each equation in the system. Since all IVs are required
  1098. to be at the same coordinate for t, after selecting the first IV you are
  1099. restricted to selecting points on the vertical line defined by the t-
  1100. coordinate of your first click. Graphmatica marks each IV as you select
  1101. it so that you will not forget how many IVs you have placed already and
  1102. how many you have left.
  1103.  
  1104.  
  1105.  
  1106. Section                        =========================================
  1107. III VVV VVV                    | Using AutoRedraw and the Redraw Queue |
  1108.  I   V   V                     =========================================
  1109.  I   V   V
  1110.  I    V V
  1111. III    V o                                                            20
  1112. ------------------------------------------------------------------------
  1113.  
  1114.                             USING AutoRedraw
  1115.  
  1116. Whenever you change the scale to look at a graph in greater detail or
  1117. from farther back, or you shift the range of the axes so that the graph
  1118. you just drew will be centered, the screen must be cleared so that a new
  1119. coordinate grid can be drawn. So you're left with the viewing angle you
  1120. wanted for that graph, but the screen is blank. You shouldn't have to
  1121. solve this problem by retyping the whole equation again...and you don't.
  1122. You can redraw the equation much more easily by selecting Pick graph in
  1123. the Redraw menu. But with AutoRedraw ON, you don't even have to do that.
  1124.  
  1125. As its name suggests, AutoRedraw will redraw the last equation(s) you
  1126. typed in automatically when you change the scale or range. If you don't
  1127. want a graph redrawn, you can abort it by pressing ESC twice and you
  1128. will be returned to the equation editor. If you want to turn off
  1129. AutoRedraw completely, just select AutoRedraw under the Options menu and
  1130. answer "n" when asked if you want AutoRedraw on.
  1131.  
  1132. To change the number of graphs redrawn automatically, you should also
  1133. select AutoRedraw from the menu. After responding "y" when asked if you
  1134. want it on, enter the number of graphs (1-25) that you would like to be
  1135. redrawn each time AutoRedraw is invoked. (If there aren't that many in
  1136. the queue, Graphmatica will just redraw them all.)
  1137.  
  1138. AutoRedraw is ON by default. You can change the default to OFF by
  1139. turning it off and using the Save Setup command to record this change in
  1140. the GRAPHMAT.INI file.
  1141.  
  1142.                             THE REDRAW QUEUE
  1143.  
  1144. Every time you type in an equation, the character string you typed and
  1145. the program's internal representation of that equation get stored in the
  1146. redraw queue. From this queue, or list, you can call up any of the last
  1147. 25 equations you typed to graph again with fewer keystrokes than
  1148. retyping it. Or you can redraw all of them or the just the last one you
  1149. typed with even fewer keystrokes. The equations in the queue are stored
  1150. in an order that puts the most-recently-used at the beginning and the
  1151. least-recently-used at the end. Hopefully, when the queue fills up, the
  1152. equations that are bumped off the queue at the end will be the ones you
  1153. won't miss very much.
  1154.  
  1155. As explained above, the screen clears whenever you execute Range or a
  1156. successful Scale (if you abort Scale the screen remains as it was). If
  1157. you execute either of these functions or clear the screen accidentally
  1158. with the Clear menu option, you can redraw the last equation (if
  1159. AutoRedraw hasn't already) by selecting Last graph under Redraw, or you
  1160. can redraw all of the equations in the queue using Redraw All under the
  1161. Redraw menu. Note that the redraw function does not keep track of which
  1162. graphs are on the screen at any point in time so "redrawing all" may put
  1163. more (if you plotted many equations on the screen before the last one)
  1164. or fewer (if you cleared the queue) equations on the screen than there
  1165. were before the screen was cleared.
  1166.  
  1167.  
  1168.  
  1169. IV. Using AutoRedraw and the Redraw Queue                             21
  1170. ------------------------------------------------------------------------
  1171.  
  1172.  
  1173.                            REDRAWING MANUALLY
  1174.  
  1175. The Pick graph option in the Redraw menu allows you to graph any
  1176. equation currently in the redraw queue. First choose an equation from
  1177. the combobox by clicking on it with the mouse or using the down key to
  1178. highlight it and pressing enter. Then, choose Pick graph from the menu.
  1179. (If you do not select an equation, Graphmatica redraws the first one in
  1180. the queue.) When you pick a graph, it is re-inserted at the top of the
  1181. redraw queue, as you'll likely be working with it again in the future.
  1182. So if you scale the grid again, that graph will be Auto-Redrawn, and if
  1183. you redraw the last graph, that graph will be shown.
  1184.  
  1185. You can redraw a single equation more efficiently within the equation
  1186. editor by selecting the equation as above and then simply pressing enter
  1187. (do not modify the equation) while it is in the equation editor. The
  1188. only advantage of the menu item is that it allows you to pick and redraw
  1189. one-handed with a mouse.
  1190.  
  1191.  
  1192.                           DELETING AN EQUATION
  1193.  
  1194. To remove an equation that is no longer of interest from the queue,
  1195. simply select that equation from the combobox (see Section I for
  1196. details) and then choose the Delete Eqn item from the Redraw menu. The
  1197. equation is then vaporized from the queue, although its graph will
  1198. remain on the screen until you clear the screen.
  1199.  
  1200.  
  1201.                         CLEARING THE REDRAW QUEUE
  1202.  
  1203. Selecting Clear All from the Redraw menu essentially starts a new
  1204. session, except the options settings and grid size remain the same.
  1205. All of the equations in the queue are deleted, and the screen and labels
  1206. (including annotations) are cleared as well.
  1207.  
  1208.  
  1209.  
  1210. IV. Using AutoRedraw and the Redraw Queue                             22
  1211. ------------------------------------------------------------------------
  1212.  
  1213.                     SAVING AND LOADING EQUATION LISTS
  1214.  
  1215. To save the list of equations you're working on, as well as the title
  1216. and y-axis labels if you've entered them, simply select Save List from
  1217. the File menu and enter a filename. This file will be saved in the
  1218. current directory with an extension of ".GR" (for GRaphmatica) unless
  1219. you specify differently. To save to diskette, you simply have to insert
  1220. "A:" or "B:" before your filename. Longer directories may not fit. When
  1221. asked if you want to include setup information, answer "y" if you want
  1222. to record the current size of the grid and options settings in the
  1223. equation list file. Otherwise, only the text labels and equations in the
  1224. queue are saved in the file.
  1225.  
  1226. To reload your list of equations or load up one of the demo files
  1227. provided with Graphmatica, you have more options. You can automatically
  1228. load a file when you run Graphmatica by typing its name (with or without
  1229. a file path or the ".GR" extension) as a command-line argument. Then
  1230. those equations will be loaded up (and graphed) immediately after the
  1231. opening screen, unless the file includes the autoredraw=off statement
  1232. (see Appendix B: editing equation lists). You can also load an equation
  1233. list at any time by selecting Open List from the File menu. You will
  1234. be presented with a list of files available (if there are any) which can
  1235. be selected using the up/down arrow keys or mouse. This list includes
  1236. two special options, "[Cancel]" and "[New path]". Select cancel to
  1237. return to the equation editor without loading a file, and new path to
  1238. change the current directory to look for files elsewhere.
  1239.  
  1240. After you select a file to load, if the redraw queue is not empty, you
  1241. must decide whether to add the new file's equations to the existing
  1242. queue or replace its current contents. Answer "y" to the prompt to clear
  1243. the queue before loading the new file, or "n" to keep it.
  1244.  
  1245. When the file has been loaded, if AutoRedraw is on Graphmatica will
  1246. proceed to draw all of the equations just loaded (but not the ones that
  1247. were previously in the queue, if you didn't clear it). You can abort
  1248. these by pressing ESC twice on each if you are impatient. The graph
  1249. title and Y-axis labels (if the file had any) that were loaded won't be
  1250. displayed until you print or do a Print Preview (see Section VIII).
  1251.  
  1252. If the file was saved with the Save setup option on, the grid and
  1253. special options settings recorded in the file will be loaded and set
  1254. automatically.
  1255.  
  1256.  
  1257.  
  1258. Section                  ===============================================
  1259. VVV VVV                  | View: Changing the appearance of the screen |
  1260.  V   V                   ===============================================
  1261.  V   V
  1262.   V V
  1263.    V o                                                                23
  1264. ------------------------------------------------------------------------
  1265.  
  1266.                           CLEARING THE SCREEN
  1267.  
  1268. Select Clear in the View menu to clear the screen. Everything will be
  1269. erased and the grid will then be redrawn. Remember, every equation you
  1270. have typed is still stored and can be redrawn later even after you have
  1271. cleared the screen. If an error has garbled the whole screen, here's a
  1272. hint to help regenerate it: first press ESC until the top menu bar is
  1273. refreshed, and then use Clear to redraw the rest of the screen.
  1274.  
  1275.  
  1276.                   CHANGING THE BACKGROUND GRAPH PAPER
  1277.  
  1278. Graphmatica has three additional types of graph paper that may be more
  1279. appropriate than the regular rectangular grid in some situations: polar
  1280. paper and trig paper. Polar paper, instead of a grid of squares,
  1281. consists of concentric circles marking the distance r, and radiating
  1282. lines marking the angle theta at intervals of pi/6 radians. Trig paper,
  1283. intended to ease interpretation of trigonometric functions, uses the
  1284. regular rectangular grid but the x-axis is labelled in multiples of pi
  1285. instead of integers. Logarithmic paper allows you to scale one or both
  1286. axes logarithmically, so that, for instance, 0.1, 1, and 10 are equally
  1287. spaced.
  1288.  
  1289. You can choose from three levels of detail for the grid: none, reference
  1290. dots, and full gridlines. Note that polar and rectangular paper look the
  1291. same when you turn the grid off. Also, you can choose between five
  1292. settings for the appearance of the x and y axes: no axes, plain axes
  1293. with no decorations, axes with arrows on the positive end, axes labelled
  1294. with "x" and "y", and axes with both arrows and labels. Note that even
  1295. with "No axes" selected, the legends may still be displayed along the
  1296. invisible axes unless you turn them off independently.
  1297.  
  1298. You can change the graph paper type, grid detail, and axis decorations
  1299. by selecting the Paper option from the View menu and responding to the
  1300. prompts, "Select type of graph paper:", "Select grid detail level:", and
  1301. finally "Select axis decorations:" appropriately.
  1302.  
  1303. If you select Logarithmic paper, you will also be asked to specify a
  1304. base and choose between semi-log (y axis only) and log-log paper (both
  1305. axes logarithmic). If you choose base 10, you will see 9 lines per
  1306. decade just like real graph paper if there is enough space to display
  1307. them (generally when less than four decades are shown). Otherwise, the
  1308. graph paper will look like normal rectangular, but with gridlines at
  1309. integer powers of the base. Note that when you switch from or to log
  1310. paper, the graphs that are on-screen will have to be recalculated, since
  1311. the shape of the curves is distorted when you take the logarithm.
  1312.  
  1313. Your choice of graph paper type, like all of Graphmatica's options, is
  1314. recorded in your equation list files when you choose to save setup
  1315. information, so when you load up an equation list later the correct
  1316. type of graph paper will automatically be displayed. See the demo files
  1317. TRIG.GR, POLAR.GR, and DIFEQ.GR for examples of this.
  1318.  
  1319.  
  1320.  
  1321. V. View: Changing the Appearance of the Screen                        24
  1322. ------------------------------------------------------------------------
  1323.  
  1324.                            CHANGING THE SCALE
  1325.  
  1326. The scale function allows you to change the scale of the graph you have
  1327. on-screen while keeping the center of the display the same (the origin
  1328. may move but if (2,2) is at the middle of the screen, it will stay
  1329. there). The scale is relative to the size of the grid that is presently
  1330. on the screen, so you need not make any comparison with the default
  1331. grid. To rescale the grid, select Scale from the View menu. Then you
  1332. must provide a "scale factor" to tell the program how much to change the
  1333. size of the grid.
  1334.  
  1335. Enter a positive number to zoom in, or a negative number to pan out. (In
  1336. the Camcorder terminology, a positive number acts as a telephoto and a
  1337. negative as a wide-angle lens.) The number of units across the screen
  1338. will be divided or multiplied by that number accordingly. Numbers
  1339. between -1 and 1, inclusive, are not allowed because they produce
  1340. meaningless values. Decimals greater than 1 or less than -1 are valid
  1341. though.
  1342.  
  1343. If you enter an invalid number, you will be asked to enter the scale
  1344. again. To abort rescaling, leave the field blank and just press enter.
  1345.  
  1346. The program remembers the value you type in and presents it as a default
  1347. the next time you Scale the grid. The original default is "2".
  1348.  
  1349.  
  1350.                            ADJUSTING THE RANGE
  1351.  
  1352. Graphmatica allows you to adjust the start and end of the x- and y-
  1353. ranges independently, so as to create a perfect fit for whatever
  1354. function you are graphing. Or, you can constrain one or more of the
  1355. coordinates to produce a graph with a square aspect ratio without
  1356. actually figuring out all of the values by hand.
  1357.  
  1358. Choose the Range item from the View menu to modify the grid. To create a
  1359. "custom" grid, estimate the top-, bottom-, left- and rightmost
  1360. extremities of the graph, and respond with the proper values to the 4
  1361. Range prompts. The new grid may be somewhat expanded or compressed
  1362. depending on the aspect ratio, but it will show the part of the graph
  1363. you're interested in the best possible detail.
  1364.  
  1365. To create a "square" grid where both x and y axis have the same scale,
  1366. just type "auto" for any of the four coordinates and it will
  1367. automatically be scaled properly to fit the other three. If you pick the
  1368. least significant coordinate to AutoScale, you can match the other three
  1369. exactly, framing your graph almost as well as a custom range, but with a
  1370. more natural aspect ratio. If you want to show the same amount above as
  1371. below the axis, type "auto" at both of the y-coordinate prompts and the
  1372. top and bottom of the grid will be set to properly scaled equal and
  1373. opposite values. (AutoScaling of both x-coordinates based on the height
  1374. of the grid is not supported.)
  1375.  
  1376. All range prompts allow you to input any valid expression, not just
  1377. decimal numbers. You can easily enter very large or small numbers using
  1378. scientific notation: e.g. 1.2*10^-8 for 0.000000012 or 3.4*10^7 for 34
  1379. million.
  1380.  
  1381.  
  1382.  
  1383. V. View: Changing the Appearance of the Screen                        25
  1384. ------------------------------------------------------------------------
  1385.  
  1386.                        CHANGING THE RANGE OF THETA
  1387.  
  1388. Because the independent variable (theta) in polar coordinates is
  1389. fundamentally different from the 'x' of Cartesian coordinates, the
  1390. Cartesian x/y ranges can only be used to determine the size of the
  1391. screen and not the domain of the equation graphed for polar graphs.
  1392. Although the default 0 to 2pi range is the typical range of theta used
  1393. for most graphs that go on forever (like spirals) and some closed graphs
  1394. (like circles), other graphs cannot be completely drawn in this range of
  1395. theta. For instance, the figure-8-shaped "r^2=64cos(2t)", because it is
  1396. undefined where the right half is less than zero, is missing a couple of
  1397. spots unless theta's range is extended to -2pi to 2pi. To allow the
  1398. greatest flexibility, Graphmatica allows theta's range to be changed
  1399. independently of all other options.
  1400.  
  1401. To change the range, select "T range" from the View menu and enter
  1402. the start and end of the range you want (or press enter on the blank
  1403. line to keep the current range). You can type in any expression,
  1404. even using fractions and functions, as long as it evaluates to a
  1405. constant. In particular, although Graphmatica works exclusively with
  1406. radians, you can enter the range in degrees by typing in a number times
  1407. the constant 'd', which converts degrees to radians, as in "45d" for 45
  1408. degrees. You can also easily specify a radian measure as a multiple of
  1409. pi, as in "2p" for 2 pi.
  1410.  
  1411. If you would rather not change the default domain but simply change the
  1412. domain for a single graph, see Section II "Specifying a Domain".
  1413.  
  1414.                       CHANGING THE BACKGROUND COLOR
  1415. Although I've hand picked the default colors for good contrast, if you
  1416. find them dissatisfactory you have two alternate choices to the default
  1417. charcoal gray grid: a white or black background. The graph colors stay
  1418. the same, except for a few light colors which are replaced by darker
  1419. ones on the white background. Hopefully, at least one of these color
  1420. schemes will work for you.
  1421.  
  1422. To change the color scheme, select Colors from the View menu, and select
  1423. Gray, Black, or White. To make your choice of color "stick," select
  1424. Save Setup from the File menu and it will be written to your
  1425. graphmat.ini file. Note that color selection is not saved with .GR
  1426. files, only in your personal setup, since it has more to do with your
  1427. hardware than the equations you are working with.
  1428.  
  1429.  
  1430.  
  1431. Section                   ==============================================
  1432. VVV VVV III               | Labels: Adding Explanatory Text to a Graph |
  1433.  V   V   I                ==============================================
  1434.  V   V   I
  1435.   V V    I
  1436.    V    IIIo                                                          26
  1437. ------------------------------------------------------------------------
  1438.  
  1439.  
  1440.                               AXIS LEGENDS
  1441.  
  1442. By default, Graphmatica labels the hatch marks across the graph with the
  1443. number of their coordinate so that you can more easily locate points or
  1444. find the coordinates of a graphed point. In some cases, though,
  1445. especially when doing graphs near the axes, the numbers can be confusing
  1446. and you may want to turn them off. To do this, select the Legends option
  1447. in the Labels menu. In the choice box, select the None button.
  1448.  
  1449. If you find that the interval that is automatically chosen for the grid
  1450. spacing is not well-suited to your task, select the Custom spacing
  1451. button and you will be prompted for the increments you prefer for the X
  1452. and Y axes. Next, you can choose between two behaviors when the grid
  1453. size changes: 1) Lock the legend spacing to the values you selected, or
  1454. 2) Scale the grid spacing along with the grid itself. Unfortunately,
  1455. neither option will be likely to satisfy you if you change the grid
  1456. spacing by a non-integer factor or by too much, so you may have to reset
  1457. the spacing to more suitable increments again manually.
  1458.  
  1459. To go back to the default behavior, select the Automatic spacing button
  1460. in the Axis Legends dialog.
  1461.  
  1462.  
  1463.                       ADDING TITLES TO YOUR GRAPHS
  1464.  
  1465. If you want to add a title line and/or labels along the sides to your
  1466. graph, select Titles from the Labels menu. You can type in a new title,
  1467. edit one you typed in previously, or delete the title by pressing enter
  1468. on the blank line. For the y-axis labels, the length of the string you
  1469. can use depends on the number of rows you monitor has: CGA and EGA can
  1470. hold 23 letters and VGA can hold 28. The program presents you with the
  1471. previous label which you can edit, discard by pressing ESC and typing a
  1472. new string, or turn off completely by pressing ESC and then enter on the
  1473. blank line.
  1474.  
  1475. When you print (or select Print Preview from the menu), the title is
  1476. written across the top of the screen where the equation editor normally
  1477. is, and it is automatically centered. Do not try to center the title
  1478. manually when you are typing it in or it will interfere with the
  1479. automatic centering. When you are graphing and the menu is active, the
  1480. title line is not shown.  Like the title, the y-axis labels are
  1481. automatically centered (vertically) on the graph. Graphmatica does not
  1482. draw these labels immediately, since they are intended mainly to enhance
  1483. hardcopy printing, but they are also displayed if you perform the
  1484. Preview option under the File menu.
  1485.  
  1486. These two features were previously found in the View menu.
  1487.  
  1488.  
  1489.  
  1490. VI. Labels: Adding Explanatory Text to a Graph                        27
  1491. ------------------------------------------------------------------------
  1492.  
  1493.  
  1494.                                ANNOTATIONS
  1495.  
  1496. Annotations are short text phrases which you can place anywhere on the
  1497. graph surface to label intersections, zero-crossings, and other
  1498. important points on your graphs. Graphmatica maintains a list of up to
  1499. ten 30-character annotations.
  1500.  
  1501. To add an annotation to the graph, select Annotate from the Labels menu.
  1502. Type in the text you wish to use to label the graph and press enter. Now
  1503. a crosshair cursor will appear. Move it with the keyboard or mouse to
  1504. the position where you want the upper-left corner of the text. Then
  1505. click the left button or press enter to paste it down. The text will
  1506. appear on the screen immediately. Remember that it is associated with a
  1507. logical x,y coordinate on the grid, not with the physical point you
  1508. clicked on or with any particular equation. Thus, when you rescale the
  1509. graph or change the range, the annotation will reappear at the same
  1510. logical but not always the same physical position. Also note that
  1511. annotations that would run off the screen cannot be drawn. You must zoom
  1512. out so they are fully on the screen before they will appear.
  1513.  
  1514. To edit a previously entered annotation, select the Edit Annote menu
  1515. item from the Labels menu. Next choose the annotation to edit from the
  1516. listbox. You can then choose the delete the annotation, change its text,
  1517. or change its position. Pressing Esc at this prompt instead leaves the
  1518. annotation unchanged.
  1519.  
  1520. All of the annotations you have entered will be saved with any equation
  1521. list you save, and will automatically be displayed again when you reload
  1522. it. Like the graph title, the current annotations are cleared before
  1523. loading a new file and when you Clear all of the equations from the
  1524. redraw queue.
  1525.  
  1526.  
  1527.  
  1528. Section                          =======================================
  1529. VVV VVV III III                  | Viewing and Setting Special Options |
  1530.  V   V   I   I                   =======================================
  1531.  V   V   I   I
  1532.   V V    I   I
  1533.    V    III IIIo                                                      28
  1534. ------------------------------------------------------------------------
  1535.  
  1536.                           THE DEFAULT SETTINGS
  1537.  
  1538. When you run Graphmatica without a GRAPHMAT.INI file, the following
  1539. settings are in effect:
  1540.  
  1541.     Start of range:  (-8.0, *)
  1542.       End of range:  (8.0, *)
  1543.           Fineness:  1.0 **
  1544.            Legends:  ON              Warnings:  OFF
  1545.            Printer:  OFF           AutoRedraw:  ON
  1546.            AutoNum:  1            Graph paper:  Rectangular, Grid
  1547.        Theta Range:  0 to 6.28 (2pi)
  1548.  
  1549. *  varies depending on video mode; always equal and opposite and scaled
  1550.    to provide a square aspect ratio.
  1551. ** on CGA systems fineness is automatically set down to 0.75 to speed up
  1552.    graphing.
  1553. This provides a basic rectangular grid of decent size with the origin
  1554. centered, a square aspect ratio (a 1x1 square on the grid really LOOKS
  1555. square), and a good resolution graph.
  1556.  
  1557.                           VIEWING THE SETTINGS
  1558.  
  1559. The current settings are almost always displayed whenever you change one
  1560. of them. Every item under Options (unless aborted) will bring up the
  1561. settings screen. You can also look at them manually by selecting
  1562. Settings in the Options menu.
  1563.  
  1564.                         SAVING SETUP INFORMATION
  1565.  
  1566. You can save your preferred grid size and settings of other user options
  1567. so that whenever you run Graphmatica again they will automatically be
  1568. restored. You can do this at any time by selecting the Save Setup item
  1569. in the File menu. The options will be saved in the GRAPHMAT.INI file in
  1570. the current directory. If this is not where the program files are
  1571. stored, Graphmatica will not be able to find it again, so if you change
  1572. the directory using the load or save list commands, be sure to reset it
  1573. before you save the setup.
  1574.  
  1575. The setup file is just a special equation list that is loaded
  1576. automatically when you start Graphmatica. It follows the same format as
  1577. a normal equation list (described in Editing Equation Lists) except that
  1578. when you save it Graphmatica leaves out the labels and the equations
  1579. (the important parts of normal equation lists).
  1580.  
  1581. When Graphmatica saves your options, to simplify things it only records
  1582. those options that are different from its own internal defaults. (See
  1583. Default Settings for a list of these.) If your settings are close to the
  1584. defaults, your setup file will be very short.
  1585.  
  1586.  
  1587.  
  1588. VII. Viewing and Setting Special Options                              29
  1589. ------------------------------------------------------------------------
  1590.  
  1591.                          ADJUSTING THE FINENESS
  1592.  
  1593. The fineness factor determines the resolution of the graph, and in
  1594. effect, the amount of time it takes to draw it. The fineness factor of 1
  1595. is quite adequate in most circumstances. Graphmatica's SmartFineness
  1596. feature dynamically adjusts the actual step rate, making the manual
  1597. fineness adjustment almost obsolete, but I left it in to accommodate the
  1598. need for especially sharp graphs or for especially quick renderings.
  1599. SmartFineness automatically decreases the fineness when the point being
  1600. graphed is not on the screen to speed up blank areas, then recovers
  1601. automatically and backtracks to the spot where the graph comes on-screen
  1602. again. It also varies the fineness with the slope of the equation being
  1603. graphed--less when the slope is near-horizontal, greater when the slope
  1604. tends toward vertical, so steep graphs are tracked more effectively. As
  1605. the fineness is increased, the curve will become smoother--to a point.
  1606. Remember that for any increase in the fineness factor, there will be a
  1607. proportional increase in the time it takes to draw a graph.
  1608.  
  1609. If you have CGA adapter, Graphmatica assumes you are using an 8088-class
  1610. PC and reduces the fineness to 0.75 to speed up graphing; the difference
  1611. in resolution is usually not noticeable, but the difference in speed is.
  1612.  
  1613. Fineness is also linked to the rate at which the angle is allowed to
  1614. change in polar graphs, and Cartesian and Polar graphs will be of
  1615. comparable quality at the same fineness factor. Fineness is also linked
  1616. to the step rate of parametric graphs and differential equations;
  1617. because they vary so much, it is harder to insure that all parametrics
  1618. and dif-eqs will graph well at the default fineness, but those I have
  1619. tested look fine.
  1620.  
  1621. To change the fineness factor, select Fineness from the Options menu.
  1622. Any value greater than zero is valid, but I would not recommend going
  1623. below 0.25, as the image quality suffers and the graphs begin to look
  1624. like modern art. Also, a factor greater than 5, in addition to being
  1625. slow, can overflow the list of plotted points kept for quick redraws,
  1626. which may actually cause the graph to display incorrectly if you change
  1627. the graph paper or another option that forces the screen to be redrawn.
  1628.  
  1629.                            WARNING MESSAGES
  1630.  
  1631. By default, the error messages which do not require the equation to be
  1632. edited are suppressed, because they slow down the graphing process,
  1633. cover up the equation, and are somewhat annoying when you know the graph
  1634. shouldn't produce any values in some area. (Also, it saves you the
  1635. effort of specifying the domain for each equation.) If something goes
  1636. wrong (e.g. the graph doesn't show up on screen when it should and the
  1637. reason isn't readily apparent), you can turn on the warning messages
  1638. (using the Warnings function of the Options menu) and redraw it to see
  1639. what the problem is.
  1640.  
  1641.                         CHANGING THE DRAWING MODE
  1642.  
  1643. Graphmatica can render graphs in two ways: by drawing dots to represent
  1644. the points it has calculated or by drawing lines to "connect the dots."
  1645. By default, graphs are drawn using lines, because at a minimal expense
  1646. of time, this makes the graphs much more visible. If you want, however,
  1647. you can change the drawing mode to "dots" using the Draw Mode command in
  1648. the Options menu.
  1649.  
  1650.  
  1651.  
  1652. Section                             ====================================
  1653. VVV VVV III III III                 | Using a Printer with Graphmatica |
  1654.  V   V   I   I   I                  ====================================
  1655.  V   V   I   I   I
  1656.   V V    I   I   I
  1657.    V    III III IIIo                                                  30
  1658. ------------------------------------------------------------------------
  1659.  
  1660.  
  1661.                     PRINTING PICTURES OF YOUR GRAPHS
  1662.  
  1663. Graphmatica includes two internal printing functions which work with CGA,
  1664. EGA, and VGA and many common printers. To print, select the Print
  1665. command from the File menu and then choose the printer type closest to
  1666. your own. If you have an IBM, Epson, or compatible dot-matrix graphics-
  1667. capable printer or a laser printer that doesn't support HP PCL but has
  1668. Epson emulation, select Epson dot-matrix. If you have a Hewlett-Packard
  1669. DeskJet, LaserJet, or other laser or ink jet printer compatible with
  1670. the HP Printer Control Language Level III, choose HP LaserJet/DeskJet.
  1671. If you didn't mean to choose the print command, press ESC to abort.
  1672.  
  1673. Graphmatica does not check the printer's status, so you must have it on
  1674. before you try to print.
  1675.  
  1676. All the graphs on the screen will be printed on the printer, with the
  1677. top of the screen at the top of the paper. At the bottom of the page is
  1678. a list of the equations for the graphs Graphmatica thinks are presently
  1679. on the screen. All graphs you have drawn since the last time the screen
  1680. was cleared, except ones that you aborted by pressing ESC, are included
  1681. in this list.
  1682.  
  1683. If you want to abort the printing process, press ESC. Don't turn off or
  1684. reset the printer until the "Printing..." message at the bottom of the
  1685. screen is gone or DOS may print an error message and mess up the screen.
  1686.  
  1687. The output is as close to what you see on the screen as I can make it,
  1688. but since none of the supported display resolutions makes a very good
  1689. match with the printer's resolution (aside from VGA on a LaserJet), I had
  1690. to do some stretching and squeezing to make the printouts the right
  1691. shape. Thus the size of the printout will vary between different monitor
  1692. types because to make the grid square, I had to expand the x axis
  1693. different amounts to make up for the different vertical resolutions.
  1694.  
  1695. On dot matrix printers, for CGA mode, the x direction is expanded by 33%
  1696. and the y by 100%. For EGA, the x is expanded by 20% and the y remains
  1697. as it was read off the screen. For VGA, the x is expanded 50% and the y
  1698. is compressed about 9% by merging pairs of adjacent lines. For super-
  1699. VGA (800x600), the x direction is expanded by 20% and the y is
  1700. compressed by 27% by merging adjacent lines. For this reason, dot matrix
  1701. printouts at high resolutions may not be as sharp as EGA resolution
  1702.  
  1703. On laser printers, Graphmatica produces crisper, more compact images due
  1704. to the superior resolution. The VGA image will print the best with a
  1705. laser printer: every point is mapped on a one-to-one basis due to the
  1706. square aspect ratios of both the screen and printer. EGA and CGA images
  1707. are scaled accordingly so the output isn't squashed, and they print
  1708. graphics that are not as sharp but still much better than dot-matrix
  1709. output.
  1710.  
  1711.  
  1712.  
  1713. VIII. Using a Printer with Graphmatica                                31
  1714. ------------------------------------------------------------------------
  1715.  
  1716.                             NOTES ON PRINTING
  1717.  
  1718. Graphmatica assumes your printer resides at LPT1:. If your printer is
  1719. not connected to the parallel port but to the serial port instead, you
  1720. must use the DOS "mode" command to redirect the output if you want to
  1721. use the printer. For most people, the command would be
  1722.     C:\>mode lpt1 = com1
  1723. You need to use this command only once before you run Graphmatica; DOS
  1724. will remember the redirection until you shut off the computer or reboot.
  1725.  
  1726. If you have a color printer and a paint program that can print in
  1727. color, you may want to export the grid to a PCX file and use the paint
  1728. program to print. (Graphmatica for DOS can only print in black & white.)
  1729.  
  1730.  
  1731.                               PRINT PREVIEW
  1732.  
  1733. To see how the screen will look when it is printed, simply select the
  1734. Preview option from the Print menu. In EGA and VGA modes, you can choose
  1735. between color and monochrome preview. Super-VGA does not have any
  1736. corresponding monochrome mode available, unfortunately.
  1737.  
  1738. The menu bar and help line will clear, and the graph title and y-axis
  1739. labels (if any) will be drawn on the screen. If you have a color printer
  1740. that works better with an external print screen function, this is the
  1741. perfect time to press the Print Screen button (if you have a mouse, be
  1742. sure to hide the arrow at the bottom of the screen first). In any case,
  1743. you can look at it as long as you need to. When you want to return to
  1744. work, just press any key or mouse button and the menu will reappear.
  1745. (The side labels are not erased, however; they must be cleared manually.
  1746.  
  1747.  
  1748.                           EXPORTING .PCX FILES
  1749.  
  1750. If you want to include a picture of your graphs in a word processor
  1751. document, or modify the default appearance of the grid before printing
  1752. it, you can export the current grid to a Zsoft PC-Paintbrush (PCX) file
  1753. by choosing the Export PCX option in the file menu. You can choose
  1754. between color (in EGA/VGA modes) and two monochrome (black on white and
  1755. white on black) palettes for the bitmap. Then enter a file name for the
  1756. output (you need not include the .pcx extension). Note that this process
  1757. may take a few seconds on 386 and slower computers, as I have not
  1758. optimized the assembly code for this rather intensive operation.
  1759.  
  1760.  
  1761.                              PRINTING VALUES
  1762.  
  1763. This feature allows you to print out a table of coordinates as the
  1764. program is drawing your graph. This option is available to aid the
  1765. drawing of graphs manually (if you happen to be cheating on your
  1766. homework) and provide a reference for labeling the axes if you print the
  1767. graph without the legends on.
  1768.  
  1769. By default, the print tables option is OFF; most people don't leave
  1770. their printer on at all times and the process slows down graphing. You
  1771. can turn it on by selecting Tables in the Options menu and responding
  1772. "y" to the prompt.
  1773.  
  1774.  
  1775.  
  1776. Section                       ==========================================
  1777. III XX    XX                  | Point menu: evaluating specific points |
  1778.  I    X  X                    ==========================================
  1779.  I     XX
  1780.  I    X  X
  1781. III XX    XX o                                                        32
  1782. ------------------------------------------------------------------------
  1783.  
  1784. Graphmatica provides two features to help you get numerical results
  1785. from your equations. Both are located in the Point menu.
  1786.  
  1787.                      NUMERICALLY EVALUATING A POINT
  1788.  
  1789. The Evaluate command in the point menu allows you to quickly find the
  1790. value of any equation you've entered at a specific point. First choose
  1791. an equation from the queue by selecting it in the equation combobox. (If
  1792. you do not choose an equation, Graphmatica will select the last one
  1793. graphed for you.) Then choose the Evaluate command from the Point menu.
  1794. You will be asked to enter a value for the selected equation's
  1795. independent variable. Any expression that evaluates to a constant is OK,
  1796. including fractions and constants. (e.g. "3/4" or "pi")
  1797.  
  1798. Graphmatica will calculate the value of the dependent variable(s) at
  1799. this point and display the result. For function families that use the
  1800. parameter 'a', only the starting value of 'a' will be used, since only
  1801. one result can be displayed. (Note that if an error occurs when
  1802. evaluating at the point, a message will be displayed on the bottom line
  1803. regardless of the state of the Warning Messages option.) Press any key
  1804. to type in another point to evaluate. When you want to stop evaluating
  1805. points, press ESC to return to the menu.
  1806.  
  1807. (Point Evaluate cannot be used for slope-field ODE approximations, since
  1808. they are not really functions of a single variable.)
  1809.  
  1810.                          THE COORDINATE CURSOR
  1811.  
  1812. If the point you're interested in is on-screen, you can use the
  1813. coordinate cursor to estimate its coordinates. Simply select Cursor from
  1814. the Point menu. (If you have a mouse, you can also just hold down the
  1815. right mouse button.) The crosshairs will appear at the current position
  1816. of the mouse pointer and will respond to both the mouse and the arrow
  1817. keys. As you move the crosshairs, the coordinates are displayed at the
  1818. bottom of the screen. To exit the coordinate cursor, click either mouse
  1819. button or press ESC. When you use the keyboard to position the pointer,
  1820. it moves about 20 pixels with each keypress, so you can move rapidly
  1821. from one side of the screen to the other. To move the crosshair one
  1822. pixel at a time, hold down the Ctrl key and then press the arrow keys.
  1823.  
  1824. When you move the cursor close enough to one of the curves on-screen, it
  1825. will automatically "lock on" to make it easier to trace the path of the
  1826. curve. When this happens, the equation of the curve being traced is also
  1827. displayed in the status bar. The crosshair will stick to the curve you
  1828. chose, even if it intersects other graphs, as long as you move the
  1829. cursor gently in the general direction of the curve. To release the
  1830. cursor from a curve, move perpendicularly to the slope of the curve at
  1831. that point, or just move quickly in any direction.
  1832.  
  1833. Remember that the values reported by the coordinate cursor are limited
  1834. by the resolution of your screen. At the default grid size, values may
  1835. be off by 0.01 or more. For best results, zoom in on the section of the
  1836. graph you are interested in first, or use the Evaluate command.
  1837.  
  1838.  
  1839.  
  1840. Section           ======================================================
  1841. XX    XX          | Calculus menu: Derivatives, Tangents and Integrals |
  1842.   X  X            ======================================================
  1843.    XX
  1844.   X  X
  1845. XX    XX o                                                            33
  1846. ------------------------------------------------------------------------
  1847.  
  1848.                   FINDING THE DERIVATIVE OF A FUNCTION
  1849.  
  1850. Graphmatica is able to perform symbolic differentiation on most common
  1851. functions and to display the derivative of a given curve in both text
  1852. and graphical formats. To differentiate a function, select it in the
  1853. queue and then Choose Find Derivative from the Calculus menu. (If the
  1854. function you want to use is not in the queue, you must graph it first.)
  1855. The program will then manipulate its internal representation of the
  1856. equation to produce its derivative, add the resulting equation to the
  1857. queue, and immediately graph it.
  1858.  
  1859. Note that while the curve produced by this process will always be
  1860. correct, the equation of the curve may not be very well simplified,
  1861. especially for complex equations. Therefore, the best way to check a
  1862. derivative you found by hand is to overlay its graph with the program's.
  1863.  
  1864. Finding the derivative is only supported for Cartesian, polar, and
  1865. parametric equations. For relations such as equations containing y^2,
  1866. the derivative is only found for the function with the positive root.
  1867. For equations with more than one y, the derivative is found with repsect
  1868. to y instead of x. For parametric equations, the derivative is found by
  1869. differentiating the x and y functions separately with respect to t.
  1870.  
  1871. Equations containing the following functions are not differentiable:
  1872.    int     not a continuous function
  1873.    abs     not guaranteed to be a smooth function
  1874.  
  1875.  
  1876.                           DRAWING TANGENT LINES
  1877.  
  1878. At times you may be interested in knowing the slope of a curve at a
  1879. given point. Graphmatica will provide this information both numerically
  1880. and graphically about any curve on the screen with just a few clicks of
  1881. the mouse.
  1882.  
  1883. To calculate the slope of a curve and draw the tangent line at a
  1884. specific point, first select Draw Tangent from the Calculus menu. The
  1885. cursor will change to the crosshairs. Use the mouse or arrow keys to
  1886. move to a point on any curve on the screen, then click or press enter to
  1887. select it. The program will draw the tangent line and display the point
  1888. selected and the slope on the status line as well as in the Printout
  1889. window if it is on. The tangent line will be displayed only until you
  1890. hide or delete the equation it belongs to, clear the screen, or draw
  1891. another tangent line.
  1892.  
  1893. Currently, you can only find the tangent line for differentiable
  1894. Cartesian and polar equations (i.e. those which do not include the int()
  1895. or abs() functions). At this time, there is no efficient way to produce
  1896. accurate results for other curves (for parametric equations you will get
  1897. a rough approximation based on the slope between the two consecutive
  1898. points nearest where you clicked). Support for other equation types and
  1899. saving and restoring tangent lines along with equation lists will be
  1900. added to a future version of the program if enough people request it.
  1901.  
  1902.  
  1903.  
  1904. X. Calculus menu: Derivatives, Tangents and Integrals                 34
  1905. ------------------------------------------------------------------------
  1906.  
  1907.                INTEGRATING TO FIND THE AREA UNDER A CURVE
  1908.  
  1909. Graphmatica can perform numerical integration to find the area under the
  1910. curve for any function on the screen. Just select Integrate from the
  1911. Calculus menu. The cursor will change to the crosshairs.
  1912.  
  1913. To select a curve and region to integrate over, do one of the following:
  1914. *  With the keyboard, use the arrow keys to move the crosshair to the
  1915.    starting point on the curve you want to integrate. Press enter, then
  1916.    move to the x-value of the end of the range to integrate. Press enter
  1917.    again.
  1918. *  With the mouse, click on the starting point on the curve and drag the
  1919.    mouse to the endpoint of the region to integrate. The interval you
  1920.    select is highlighted as you move the cursor.
  1921.  
  1922. The program will shade in the area that was found and display the
  1923. numerical result in the status bar,  as well as send it to the printer
  1924. if you have Print Tables on. If you select a region under the axis, or
  1925. highlight the region above the axis from right to left, you will get a
  1926. negative area. The shading will be cleared as soon as you hide or delete
  1927. the equation it belongs to, clear the screen, or perform another
  1928. integration.
  1929.  
  1930. You can choose from several methods of integration, as well as
  1931. specifying how many segments to divide the region into, to select more
  1932. accurate or faster computation. See below for details.
  1933.  
  1934. Any integral shading you create will appear on the grid when you print
  1935. or copy to a bitmap; however, it will not be listed with the rest of the
  1936. equations. Currently, there is no provision for saving or restoring
  1937. integration regions, or for showing more than one shaded region at a
  1938. time. This, along with finding the area between two curves, will be
  1939. implemented in a future version of the program.
  1940.  
  1941.  
  1942.                      SETTING INTEGRATION OPTIONS
  1943.  
  1944. You can choose between two methods of integration, as well as optionally
  1945. specify how many segments to divide the selected region into, to select
  1946. more accurate or faster computation. To modify the integration options,
  1947. select Int Options from the Calculus menu. Then choose between the
  1948. Trapezoidal and Simpson's Rule for the integration method. Simpson's
  1949. Rule tends to produce more accurate results, as long as the curve is
  1950. smooth in the region you are integrating.
  1951.  
  1952. You can also set the number of segments to divide the region into when
  1953. calculating the area. This must be a positive integer, and if you use
  1954. Simpson's Rule, it must be an even number. The higher the number, the
  1955. more accurate the result will be, but the longer it will take to
  1956. calculate it. By default (and if you type "auto" instead of a number
  1957. here) Graphmatica chooses the number of segments automatically to be
  1958. half of the width of the area you selected in screen pixels.
  1959.  
  1960.  
  1961. Appendix                        ========================================
  1962.  AAAA                           | Graphmatica's Command Line Arguments |
  1963. A    A                          ========================================
  1964. AAAAAA
  1965. A    A
  1966. A    Ao                                                               35
  1967. ------------------------------------------------------------------------
  1968.  
  1969. With the introduction of the GRAPHMAT.INI file, which will not only
  1970. save your preferred options automatically from inside Graphmatica but
  1971. will also reset them automatically the next time you run the program,
  1972. most of the command line arguments that GraphIt! version 2.80 supported
  1973. were removed in version 3.0. [Although you shouldn't need to edit the
  1974. setup file yourself at all, its format is described in Appendix B.]
  1975.  
  1976. Arguments are NOT case sensitive (upper-case and lower-case letters
  1977. are treated exactly the same). Arguments must be separated by one or
  1978. more spaces on the command line. Excluding filenames, the other
  1979. argument must begin with the standard MS-DOS "switch" character ("/").
  1980. UNIX-style switches (starting with "-") are NOT supported.
  1981.  
  1982.  
  1983. /G:xxxxxx        Graph Equation
  1984. -------------------------------
  1985.     If you want to start up Graphmatica by automatically graphing one or
  1986.     more equations, use the /G: option. The only limits on the number
  1987.     of equations you can include on the command line are the capacity
  1988.     of the redraw queue (25 equations) and, of course, the maximum
  1989.     length of the command line (I think it's around 128 characters).
  1990.     The equation(s) will be parsed and graphed in exactly the same way
  1991.     as the regular prompted input, with one exception: if you want to
  1992.     include any spaces in the equation, you must enclose the whole
  1993.     "/G:xxxx" string in quotation marks or the spaces will be
  1994.     interpreted as delimiters between arguments.  As the Graphmatica
  1995.     editor is far superior to the DOS command line editor, this option
  1996.     has limited usefulness, but it is a good interface for execution
  1997.     from a batch file.
  1998.  
  1999. /V       Use VESA 800x600 mode
  2000. ------------------------------
  2001.     Because the signals that high-resolution video cards produce may
  2002.     physically damage monitors that are not capable of displaying them,
  2003.     Graphmatica does not attempt to detect super-VGA cards. If you know
  2004.     your monitor is capable of supporting this mode and you have a VESA-
  2005.     compatible video card (or a TSR VESA driver), you can select 800x600
  2006.     resolution with this switch. kSoft ASSUMES NO LIABILITY FOR ANY
  2007.     DAMAGE CAUSED BY IMPROPER USE OF THIS SETTING. If your card is not
  2008.     compatible with this mode, Graphmatica will select standard VGA.
  2009.     The Microsoft mouse driver, version 8.20, does not fully support
  2010.     these modes. (The mouse cursor does not display.) A newer version of
  2011.     this or another mouse driver may.
  2012.  
  2013. filename[.ext]
  2014. --------------
  2015.     Specifying the name of a valid equation list file (with or without
  2016.     the ".GR" extension) loads that file upon startup. Unless
  2017.     AUTOREDRAW=OFF is specified in the [options] section of the file
  2018.     loaded (assuming it has one), the graphs are drawn as soon as the
  2019.     opening screen is gone. Note that the settings saved in GRAPHMAT.INI
  2020.     are loaded before any equation list files you specify.
  2021.  
  2022.  
  2023.  
  2024. Appendix                     ===========================================
  2025. BBBB                         | Editing Equation Lists and GRAPHMAT.INI |
  2026. B   B                        ===========================================
  2027. BBBB
  2028. B   B
  2029. BBBB o                                                                36
  2030. ------------------------------------------------------------------------
  2031.  
  2032. Graphmatica does not really provide facilities for maintaining equation
  2033. lists; although you can edit an equation and change the order of
  2034. equations by redrawing selected graphs, determining the precise order of
  2035. equations in the list is difficult since they are dynamically shuffled
  2036. each time an equation is entered or redrawn to make Graphmatica more
  2037. interactive. However, the equation list is just a text file whose
  2038. structure is virtually identical to the win.ini file, you can create or
  2039. modify one with virtually any editor. The structure goes like this:
  2040. (sections in parentheses are explanations; don't type them in.)
  2041.  
  2042.   [saved-setup]   (if present, resets all options to defaults before
  2043.                   load to ensure the saved setup is restored correctly)
  2044.   [labels]
  2045.   title = xxxx    (any character string, up to 76 chars.)
  2046.   left = xxxx
  2047.   right = xxxx
  2048.  
  2049.   [grid]
  2050.   left = #.##            (left side of grid)     (any decimal number)
  2051.   right = #.##           (right side of grid)    (or "auto" to autoscale)
  2052.   top = #.##             (top of grid)
  2053.   bottom = #.##          (bottom of grid)
  2054.  
  2055.   [options]
  2056.   paper = polar, trig, rect, slog or llog  (controls graph paper type)
  2057.   detail = none, axes, dots, or grid       (controls paper detail level)
  2058.   autoredraw = on or off  (controls AutoRedraw)          ("on" or "off")
  2059.   autonum = ##            (number of equations to A.R.)  (any integer 0-25)
  2060.   legends = on or off     (controls axis legends (numbers))
  2061.  _color = 1,2, or mono   _
  2062. | hogcpu = on or off      |
  2063. | widelines = on or off   |   valid under Graphmatica for Windows ONLY
  2064. | autosquare = on or off  |  Graphmatica for DOS ignores these 4 settings
  2065. |_labels = on or off     _|
  2066.   tables = on or off      (controls print tables feature)
  2067.   warnings = on or off    (controls warning error messages)
  2068.   defscale = #.##         (default for "Scale" prompt - any decimal number)
  2069.   fineness = #.##         (default fineness value)
  2070.   tstart = #.##           (default start of theta's domain)
  2071.   tstop = #.##            (default end of theta's domain)
  2072.  
  2073.   [equations]
  2074.   (up to 25 equations, each up to 200 characters, each on a separate line)
  2075.  
  2076. The [labels] section specifies the title and y-axis labels. The [grid]
  2077. section gives the left, right, top and bottom coordinates of the grid.
  2078. Type "auto" for any one to auto-scale that coordinate based on the other
  2079. three. Type auto for both the top and bottom to auto-scale the y-axis so
  2080. the top and bottom coordinates are equal and opposite.
  2081.  
  2082.  
  2083.  
  2084. B. Editing equation lists and GRAPHMAT.INI                            37
  2085. ------------------------------------------------------------------------
  2086.  
  2087. You can omit any item or even a complete section if you don't want to
  2088. change the default. Type exactly as specified above, including the
  2089. brackets "[ ]" around the section headings, but replacing the values on
  2090. the right side of the equals signs with your own values. If you don't
  2091. know or don't care what the value is for an option, just leave the line
  2092. out. Don't worry about capitalization, extra spaces, or even extra blank
  2093. lines. (However, each entry must be on a separate line or some may be
  2094. ignored.) You can put the options and sections in any order ... the only
  2095. requirement is that the [equations] section must come last, if there is
  2096. one. Invalid options are also ignored.
  2097.  
  2098. If you want to create a file with no titles or options, simply type the
  2099. "[equations]" header and then type all of your equations. Each equation
  2100. must be on a separate line. There is one catch, however: since
  2101. Graphmatica graphs the most recently entered equation first when it
  2102. redraws, when the list is loaded and graphed, the equation listed LAST
  2103. will be graphed FIRST. (It is certainly possible to correct this
  2104. situation by graphing the equations as they come in, but then every
  2105. subsequent "redraw all" command would draw the list backwards anyway.)
  2106. If you load an equation list and immediately save it without changing
  2107. anything, the net effect will be that the order of the equations in the
  2108. file is reversed.
  2109.  
  2110. The GRAPHMAT.INI file, which is loaded whenever you run Graphmatica
  2111. without specifying an equation list to load, uses the exact same
  2112. format... when you choose the Save Setup command, Graphmatica simply
  2113. saves the setup file as it would an equation list, except the [labels]
  2114. and [equations] sections are omitted, since you probably don't want to
  2115. have the same graph title and equations load up automatically forever
  2116. and ever.
  2117.  
  2118.                       CONVERTING OLD EQUATION LISTS
  2119.  
  2120. Anybody who upgraded from GraphIt! for DOS version 2.80 who wants to
  2121. convert equation list files from the original format to one compatible
  2122. with Graphmatica for DOS 3.5, please contact me and I will explain the
  2123. process.
  2124.  
  2125.  
  2126.  
  2127. Appendix                            ====================================
  2128.  CCCC                               | Upgrade Notes: Changes from 3.30 |
  2129. C                                   ====================================
  2130. C
  2131. C
  2132.  CCCC o                                                               38
  2133. ------------------------------------------------------------------------
  2134.  
  2135. Version 3.5 is a major update which adds a number of features previously
  2136. only available in Graphmatica for Windows, as well as most of the new
  2137. features of version 1.5 for Windows. Please take a minute to acquaint
  2138. yourself with them:
  2139.  
  2140. The following features were enhanced:
  2141.  1. Incorrect "-" associativity in parser of version 3.30 fixed.
  2142.  2. Long equations (> 128 characters) that were occasionally truncated
  2143.     should no longer be molested.
  2144.  3. Exponents of the form x^(2/3) are graphed correctly (positive for
  2145.     all x). Exponents of the form x^(1/3) are graphed correctly (same
  2146.     sign as x). All other non-integer exponents are graphed
  2147.     conservatively, so they may cause a domain error warning, but NOT an
  2148.     incorrect graph.
  2149.  4. Steep functions that go off screen but should reappear again at
  2150.     larger values of x should no longer be in danger of missing lobes
  2151.     (except in the most extreme cases).
  2152.  5. The parser has been totally rewritten from scratch for better
  2153.     reliability and expansion. Now, function arguments are defined
  2154.     precisely to be the first term following the function name, or
  2155.     everything in parentheses following the function name.
  2156.  6. AutoRedraw draws all graphs on the screen by default now; set the
  2157.     "number of equations to redraw" to limit it to fewer.
  2158.  7. Delete Equation removes the graph from the screen as well as from
  2159.     the queue if it is present, to reduce clutter.
  2160.  8. Increasing the fineness factor now forces recalculation of graphs
  2161.     on the screen immediately.
  2162.  9. Parametric graphs offer smarter dynamic fineness based on absolute
  2163.     distance between consecutive points on the screen to allow fast
  2164.     graphing over any domain without worrying about curves becoming
  2165.     jagged. Also, a new option allows you to select the step rate
  2166.     manually by including it as a third parameter in the domain.
  2167. 10. ODE approximation initial values no longer need appear on the
  2168.     screen. Also, the approximation is run until the independent value
  2169.     reaches the edge of the screen, not just until the curve goes off
  2170.     screen, so curves that return on screen will be drawn in entirety.
  2171. 11. Coordinate cursor automatically "locks on" to curves when moved
  2172.     close enough, making it easier to get accurate readings.
  2173. 12. Equation picking using the mouse. Clicking on a curve will now
  2174.     select the curve in the equation listbox so you can see its equation
  2175.     on the status line and then edit it, delete it, etc.
  2176. 13. Added mouse-oriented features found in the Windows version: select
  2177.     a region and then choose Range from the View menu to zoom in to the
  2178.     displayed range; hold down right mouse button for coordinate cursor.
  2179. 14. Refined menu and scrollbar mouse support allow true Mac-type pulldown
  2180.     menus and continuous scrolling in listboxes.
  2181.  
  2182.  
  2183.  
  2184. C. Upgrade Notes: Changes from 3.30                                   39
  2185. ------------------------------------------------------------------------
  2186.  
  2187. The following new features were added:
  2188.  1. New Calculus menu offers the following useful features:
  2189.     + Symbolic differentiation using the "Find Derivative" option. Finds
  2190.     and graphs the derivative of the currently-selected equation. Works
  2191.     on most Cartesian and polar graphs.
  2192.     + Draw Tangent Line option allows you to click on a specific point
  2193.     on a curve to find the slope at that point, as well as draw the
  2194.     tangent line so you can see it graphically as well.
  2195.     + Integrate function lets you select a curve and an area to
  2196.     integrate with two mouse clicks and performs numerical integration
  2197.     to find the area under the curve by trapezoidal or Simpson's methods
  2198.     with selectable number of segments.
  2199.  2. Support for up to 4th order systems of ODEs added. Use the variables
  2200.     t,x,y,z,w and the corresponding differentials (dx, dy, etc.) to set
  2201.     up a system of equations separated by ';' much like parametrics. You
  2202.     can also use t,x1,x2,x3,x4. All curves in the system are graphed in
  2203.     different colors so you can tell them apart. You can even select all
  2204.     of the required initial values with the mouse using the Set Initial
  2205.     Value menu item.
  2206.  3. Added support for exporting to color or monochrome PCX files, so you
  2207.     can include graphs in other documents.
  2208.  4. New Hide Graph function removes the graph of an equation from the
  2209.     screen without deleting it.
  2210.  5. Spacing between axes legends can now be specified manually for times
  2211.     when the automatic spacing adjustment isn't good enough. Select
  2212.     Legends from the Labels menu to try it out.
  2213.  6. New user-settable axis decorations add to the diversity of graph
  2214.     paper choices. Now you can add arrows and labels to the axes, or
  2215.     turn them off independently of the gridlines. Look at the revised
  2216.     Paper item in the View menu.
  2217.  7. You can now select a domain using the mouse for Cartesian equations
  2218.     and ODEs.
  2219.  8. You can now plot Cartesian equations which are functions of y, not x.
  2220.  9. New floating-point error handler should prevent any crashes or
  2221.     unsightly messages from library routines due to complex equations
  2222.     or extremely large or small grid ranges.
  2223.  
  2224. I hope you find these new features beneficial. If you'd like to support
  2225. future versions with your comments and suggestions, see Appendix D or
  2226. the included REGISTER.TXT for the mail-in survey form.
  2227.  
  2228.  
  2229.  
  2230. Appendix                                      ==========================
  2231. DDDDD                                         | Shareware / Order Form |
  2232. D    D                                        ==========================
  2233. D     D
  2234. D    D
  2235. DDDDD  o                                                              40
  2236. ------------------------------------------------------------------------
  2237.  
  2238. Shareware: Feel free to distribute copies of Graphmatica to your friends
  2239. and upload to BBS's where others can donwload it AS LONG AS 1) you
  2240. charge no fees for its use or distribution and 2) you do not modify the
  2241. program or documentation files in any way.
  2242.  
  2243. [Shareware catalogs have permission to distribute this product for no
  2244. more than $5 a copy. However, please contact me to make sure you have
  2245. the latest version before you do so.]
  2246.  
  2247. This program is to be taken AS IS with no warranties, express or implied.
  2248. Although I know of no serious bugs, kSoft will not be held liable for any
  2249. damage caused by use, misuse, or inability to use the program. However,
  2250. if you tell me about any bugs you may find, I will try to correct them
  2251. in the next release.
  2252.  
  2253. If, after using Graphmatica, you find that it is easy, helpful, and
  2254. convenient to use, please support the release of future versions by
  2255. filling out the registration form on the next page and sending your
  2256. contribution (payable to Keith Hertzer) to the address below:
  2257.  
  2258.                               kSoft, Inc.
  2259.                           345 Montecillo Dr.
  2260.                       Walnut Creek, CA 94595-2613
  2261.  
  2262. If you send $20 or more, you will be registered to receive a diskette
  2263. with the next versions of Graphmatica for DOS and Windows when they
  2264. become available. For releases after that, you will be informed that a
  2265. new version is available and how you can get it. Orders outside of North
  2266. America: please add $5 for shipping if you want to receive your upgrade
  2267. via air mail.
  2268.  
  2269. Even if you cannot send any money, please help me out by filling out the
  2270. response form below, especially if you have any suggestions about what I
  2271. should add to the next upgrade.
  2272.  
  2273. You can register Graphmatica via CompuServe's Shareware registration
  2274. database. The ID number is 111. Type GO SWREG to start the transaction.
  2275. The fee of $25 US will be added to your monthly bill.
  2276.  
  2277. I can also accept credit card orders through Public (software) Library.
  2278. Prices including handling are $27.50 (US & Canada) and $30 elsewhere.
  2279. Please see README.TXT for details.
  2280.  
  2281. WHAT'S NEXT? I am slowly proceeding with Graphmatica 3D, which may or
  2282. may not have a DOS version. If you still don't have Windows, and want to
  2283. use this program, please let me know. If there is sufficient user
  2284. support I will release DOS as well as Windows versions.
  2285.  
  2286. If you would like a copy of the source code for Graphmatica for DOS
  2287. (developed in C using Microsoft Visual C++ 1.5), please send me a check
  2288. for $25 and a short note telling why you would like it.
  2289.  
  2290. --G3.5r--------------------kSoft REGISTRATION FORM--------------------12/96--
  2291.  
  2292. Name &                                          E-mail
  2293. Company _______________________________________ Address _____________________
  2294.  
  2295.  
  2296. Address _____________________________________________________________________
  2297.  
  2298.                                         State/          Postal
  2299. City ________________________________  Country _______   Code _______________
  2300.   _
  2301.  |_|  Enclosed is my $25 or more contribution. Please register me to
  2302.       receive the next upgrade to Graphmatica for DOS.
  2303.   _
  2304.  |_|  Enclosed is my $25 or more contribution. I want Graphmatica for Windows
  2305.       NOW! Please use my upgrade credit to send me the current version.
  2306.   _
  2307.  |_|  Please send me the source code [for MSVC 1.5] to Graphmatica for DOS
  2308.       3.5. I have enclosed a note on why I'd like it and a check for $25.
  2309.  
  2310. ------------(make checks in US funds payable to KEITH HERTZER)---------------
  2311.  
  2312. What size diskettes do you use?        5 1/4"           3 1/2"
  2313.  
  2314. Where did you get Graphmatica?  (name of BBS or catalog: ________________)
  2315.  
  2316.   From a friend     Local BBS     CompuServe      Internet      Catalog
  2317.  
  2318. What processor are you using to run Graphmatica for Windows?  (circle one)
  2319.  
  2320.      286        386        486        Pentium        Other (___________)
  2321.  
  2322. If you use a printer with Graphmatica, what type is it?
  2323.  
  2324.     dot-matrix         ink jet        laser          Other (___________)
  2325.  
  2326. What type of video card do you have?        Mono          CGA
  2327.  
  2328.      EGA             VGA           SVGA           Other (___________)
  2329.  
  2330.  
  2331. What DOS version do you usually run with Graphmatica?    ___________
  2332.  
  2333. What features do you like best about Graphmatica?
  2334.  
  2335. _____________________________________________________________________________
  2336.  
  2337. _____________________________________________________________________________
  2338.  
  2339. What problems have you experienced with Graphmatica?
  2340.  
  2341. _____________________________________________________________________________
  2342.  
  2343. _____________________________________________________________________________
  2344.  
  2345. Any other comments or suggestions for improvement in the next upgrade?
  2346. (Your comments are vital so I will know what to change or add. Please
  2347. feel free to use the back or another sheet of paper.)
  2348.  
  2349. _____________________________________________________________________________
  2350.  
  2351. _____________________________________________________________________________
  2352. Please send to: kSoft, Inc., 345 Montecillo Dr., Walnut Creek, CA 94595-2613.
  2353.  
  2354.